Приоритет операторов определяет, насколько "тесно" связаны между собой два выражения. Предшествующий оператор выглядит следующим образом:
Precedence | Operator Mark | Operators |
---|---|---|
High Low |
[ ( | Parenthesis |
++ == ~ (int) (string) (bool) | Types/Increment/Decrement | |
! | Logical | |
* / % | Arithmetic | |
+ - . | Arithmetic | |
<< >> | Bitwise | |
< <= > >= | Comparison | |
== != === !== <> | Comparison | |
& | Bitwise | |
^ | Bitwise | |
| | Bitwise | |
&& | Logical | |
|| | Logical | |
? : | Ternary | |
= += -= *= /= .= %= &= |= ^= <<= >>= | Assignment |
※ Когда операторы, которые имеют одинаковый приоритет, используются повторно, вычисление обычно начинается слева. Тем не менее, назначение, увеличение/уменьшение и логические операторы запускаются справа.
<?php
$var0 = 3 * 3 % 5; // (3 * 3) % 5 = 4 (from left)
$var1 = 1;
$var2 = 2;
$var1 = $var2 += 3; // $var1 = ($var2 += 3), $var1, $var2 = 5 (from right)
?>