您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關是什么php中運算符的優先級,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
運算符優先級指定了兩個表達式綁定得有多“緊密”。例如,表達式 1 + 5 * 3 的結果是 16 而不是 18 是因為乘號(“*”)的優先級比加號(“+”)高。必要時可以用括號來強制改變優先級。例如:(1 + 5) * 3 的值為 18。
運算符優先級決定了運算的順序,運算級高的先計算,如果優先級相同,那么運算符的結合方向決定了該如何運算。通過使用括號可以強制改變優先級。
運算符優先級從高到低順序如下:
結合方向 | 運算符 | 附加信息 |
---|---|---|
無 | clone new | clone 和 new |
左 | [ | array() |
右 | ++ — ~ (int) (float) (string) (array) (object) (bool) @ | 類型和遞增/遞減 |
無 | instanceof | 類型 |
右 | ! | 邏輯運算符 |
左 | * / % | 算術運算符 |
左 | + – . | 算術運算符和字符串運算符 |
左 | << >> | 位運算符 |
無 | == != === !== <> | 比較運算符 |
左 | & | 位運算符和引用 |
左 | ^ | 位運算符 |
左 | | | 位運算符 |
左 | && | 邏輯運算符 |
左 | || | 邏輯運算符 |
左 | ? : | 三元運算符 |
右 | = += -= *= /= .= %= &= |= ^= <<= >>= => | 賦值運算符 |
左 | 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 ?>
注:使用括號,即使在并不嚴格需要時,通常都可以增強代碼的可讀性。
盡管 =
比其它大多數的運算符的優先級低,PHP 仍舊允許類似如下的表達式:if (!$a = foo()),在此例中 foo() 的返回值被賦給了 $a。
關于是什么php中運算符的優先級就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。