Operator Precedence
The precedence of an operator specifies how "tightly"
it binds two expressions together. For example, in the expression
1 + 5 * 3, the answer is 16 and not 18 because the multiplication
("*") operator has a higher precedence than the
addition ("+") operator. Parentheses may be used
to force precedence, if necessary. For instance: (1 + 5) *
3 evaluates to 18.
The following table lists the precedence of operators with
the highest-precedence operators listed first.
Table 10-1. Operator Precedence
Associativity Operators
non-associative new
right [
right ! ~ ++ -- (int) (float) (string) (array) (object)
@
left * / %
left + - .
left << >>
non-associative < <= > >=
non-associative == != === !==
left &
left ^
left |
left &&
left ||
left ? :
right = += -= *= /= .= %= &= |= ^= <<= >>=
right print
left and
left xor
left or
left ,
Note: Although ! has a higher precedence than =, PHP will
still allow expressions similar to the following: if (!$a
= foo()), in which case the output from foo() is put into
$a.
|