非結合算符

非結合算符

運算符用於執行程式代碼運算,會針對一個以上運算元項目來進行運算。在程式語言中,運算符一般分為5種類型:算術運算符、連線運算符、關係運算符、賦值運算符和邏輯運算符。在大多數程式語言中,只分為左結合和右結合。有些程式語言分為非結合、左結合和右結合。非結合算符是指既不是左結合又不是右結合的算符。

基本介紹

  • 中文名:非結合算符
  • 外文名:Non-binding operator
  • 學科:計算機
  • 定義:既不是左結合又不是右結合的算符
  • 有關術語:左結合、右結合
  • 領域:程式語言
簡介,結合性,概述,左結合性和右結合性,PHP,

簡介

非結合算符是指既不是左結合又不是右結合的算符。大多數語言並沒有分非結合算符這一類,只分左結合、右結合,如C語言。但是有些語言吧非結合也算一種,如PHP。主要原因:當有一個對象兩側運算符的優先權別相同時,左結合和右結合不改變對象運算結果、例如運算符<<= > >=在PHP中。非結合的相同優先權的運算符不能連在一起使用,例如 1 < 2 > 1 在PHP是不合法的。但另外一方面表達式 1 <= 1 == 1 是合法的,因為 == 的優先權低於 <=。

結合性

概述

結合性是指當一個運算對象兩側運算符的優先權別相同時,運算對象與運算符的結合順序。
關於結合性的概念在其他高級語言中是沒有的,這是 C 語言的特點之一。在標準 C 語言的文檔里, 對操作符的結合性並沒有做出非常清楚的解釋。一個滿分的回答是:它是仲裁者,在幾個操作符具有相同的優先權時決定先執行哪一個。C 語言也將 34 種運算符規定了不同的結合性。大多數運算符結合方向是“自左至右”,即:先左後右,也叫 “左結合性” , 例如a -b + c,表達式中有-和+兩種運算符, 且優先權相同,按先左後右結合方向, 先圍繞減號結合,執行a-b 的運算,再圍繞加號結合,完成運算(a -b) + c。除了左結合性外,C 語言有三類運算符的結合方向是從右至左, 也叫 “右結合性” ,即:單目運算符、 條件運算符、以及賦值運算符。著重強調一點, 無論是左結合性, 還是右結合性, 是針對兩個相鄰的優先權相同的運行符而言(不是表達中的運算對象), 運算符是決定左右的基準點,先以前面的運算符(即位置上處於左邊的運算符)構造運算, 就是左結合, 反之, 就是右結合。

左結合性和右結合性

C規定了各種運算符的結合方向,分為兩種:左結合性和右結合性
例如:算術運算符的結合性是自左至右,即先左後右。
如有表達式x-y+z則y應先與“-”號結合,執行x-y運算,然後再執行+z的運算。這種自左至右的結合方向就稱為“左結合性”。
而自右至左的結合方向稱為“右結合性”。 最典型的右結合性運算符是賦值運算符。如x=y=z,由於“=”的右結合性,應先執行y=z再執行x=(y=z)運算。
C語言運算符中有不少為右結合性,應注意區別,以避免理解錯誤。(上文的優先權有分辨左右結合性)。

PHP

php 是一種伺服器端的,嵌入html的腳本語言。php區別其他像客戶端java的地方是它的代碼在伺服器端執行.php可以做任何其他cgi程式所能做的事,例如收集表格數據,生成動態頁面內容,或者收發cookies。可能最強大,最有意義的特性是php支持大範圍的資料庫.書寫一個支持資料庫的web 頁面是難以置信的簡單。
PHP 中的運算符分為:四則運算符、邏輯運算符、三目運算符和位運算符。
運算符優先權指定了兩個表達式綁定得有多“緊密”。例如,表達式 1 + 5 * 3 的結果是 16 而不是 18 是因為乘號(“*”)的優先權比加號(“+”)高。必要時可以用括弧來強制改變優先權。例如:(1 + 5) * 3 的值為 18。
如果運算符優先權相同,那運算符的結合方向決定了該如何運算。例如,"-"是左聯的,那么 1 - 2 - 3 就等同於 (1 - 2) - 3 並且結果是 -4. 另外一方面,"="是右聯的,所以 $a = $b = $c 等同於 $a = ($b = $c)。
括弧的使用,哪怕在不是必要的場合下,通過括弧的配對來明確標明運算順序,而非靠運算符優先權和結合性來決定,通常能夠增加代碼的可讀性。
下表按照優先權從高到低列出了運算符。同一行中的運算符具有相同優先權,此時它們的結合方向決定求值順序。
結合方向運算符附加信息
非結合
new
new
[
array()
非結合
++ --
遞增/遞減運算符
非結合
! @
類型
* / %
算數運算符
+ - .
算數運算符和字元串運算符
<< >>
位運算符
非結合
< <= > >=
比較運算符
非結合
== != === !==
比較運算符
&
位運算符和引用
^
位運算符
|
位運算符
&&
邏輯運算符
||
邏輯運算符
? :
三元運算符
<<= >>=
賦值運算符
and
邏輯運算符
xor
邏輯運算符
or
邏輯運算符
,
多處用到

相關詞條

熱門詞條

聯絡我們