首頁 >後端開發 >PHP問題 >php中運算子的優先權是什麼?

php中運算子的優先權是什麼?

青灯夜游
青灯夜游原創
2019-10-16 13:41:035759瀏覽

運算子優先權指定了兩個表達式綁定得有多「緊密」。例如,表達式 1 5 * 3 的結果是 16 而不是 18 是因為乘號(“*”)的優先權比加號(“ ”)高。必要時可以用括號來強制改變優先權。例如:(1 5) * 3 的值為 18。

php中運算子的優先權是什麼?

運算子優先順序決定了運算的順序,運算級高的先計算,如果優先權相同,那麼運算子的結合方向決定了該如何運算。透過使用括號可以強制改變優先權。

運算子優先權從高到低順序如下:

##左[#右 — ~ (int) (float) (string ) (array) (object) (bool) @類型與遞增/遞減邏輯運算子算術運算子算術運算子位元運算子##= = != === !== a8093152e673feb7aba1828c43532094比較運算子#左&位元運算符與引用左^位元運算子左|位元運算子#左&&邏輯運算子左||邏輯運算子#左?:三元運算符右= = -= *= /= .= %= &= |= ^= 639513f5eb9d8dcbce09d6b5cb44cf73>= => ;賦值運算子#左and邏輯運算子左xor邏輯運算子#左or邏輯運算子左,多處用到
<?php 
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4 
$a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2 
$a = 1; 
$b = 2; 
$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5 
// mixing ++ and + produces undefined behavior 
$a = 1; 
echo ++$a + $a++; // may print 4 or 5 
?>
註:使用括號,即使在不嚴格需要時,通常都可以增強程式碼的可讀性。
#結合方向 運算子 #附加訊息
clone new clone 和new
array()
##右 !
* / %
– .
10e3fdaca48eb0367c6d60dbc98f885d>
對具有相同優先權的運算符,左結合方向表示將從左向右求值,右結合方向則反之。對於無結合方向具有相同優先權的運算符,此運算符有可能無法與其自身結合。 範例:結合方向
儘管 

=

 比其它大多數的運算子的優先順序低,PHP 仍舊允許類似如下的表達式:if (!$a = foo()),在此例中foo() 的回傳值被賦給了 $a。

以上是php中運算子的優先權是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn