php運算子的優先順序
PHP運算子優先權,是描述在電腦運算計算表達式時執行運算的先後順序。先執行具有較高優先順序的運算,然後執行較低優先順序的運算。例如,我們常說的先執行相乘和除,再執行加減運算。
php運算子優先權的順序
下表從高到低列出了運算子的優先權。同一行中的運算子具有相同優先權,然後運算子的優先權是運算表達式從左到右。
優先權 | 結合方向 | 運算子 | 附加資訊 |
---|---|---|---|
1 | 非結合 | clone new |
#clone和new |
左 | [
|
array() | |
非結合 | -- |
遞增/遞減運算子 |
##4 |
~-(int)(float)(string)(array)(object)(bool)@ | 型別 |
5 | |
instanceof | #類型 |
##6 | |
! | 邏輯運算子
|
7 | |
|
|||
算術運算子 | #8 | 左||
算術運算子和字串運算子 | 9 | 左||
位元運算子 | 10 | 非結合||
比較運算子 |
#11 ##非結合 |
==!====!== | |
比較運算子 | #12 左 |
& | |
位元運算子與參考 | 13 左 |
^ | |
位元運算子 | 14 左 |
| | |
位元運算符 | 15 左 |
#&& | |
邏輯運算子 | ##16 | 左 |
|| |
17 | 左 |
?: | |
18 | 右 |
= =-=*=/= .= %= &= |= ^= 639513f5eb9d8dcbce09d6b5cb44cf73>= | |
19 | 左 |
and | |
20 | 左 |
xor | |
21 | 左 |
or | |
22 | 左 |
, |
#範例說明
##對具有相同優先順序的運算符,左結合方向意味著將從左向右求值,右結合方向則反之。對於無結合方向具有相同優先權的運算符,此運算符有可能無法與其自身結合。
舉例說,在 PHP 中 1 d66d2a93259ca9392db29f00ed43fda0 1 是非法語句,而 1 <= 1 == 1 則不是。因為<=比==優先權高。
<?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 ?>
所以在我們非常清楚PHP運算優先級的前提下,最好運算子的書寫的時候,還是要以圓括號來標記優先級,這樣可讀性強,也是一個良好的編程習慣。 更多PHP相關知識,請造訪
php中文網###! ###以上是php運算子的優先權是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!