The following table lists the operators in order of precedence, with the highest-precedence ones at the top. Operators on the same line have equal precedence, in which case associativity decides grouping.
Operator Precedence
| Associativity | Operators | Additional Information |
|---|---|---|
| non-associative | clone new | clone and new |
| left | [ | array() |
| right | **** | arithmetic |
| right | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | types and [increment/decrement] (http://php.net/manual/en/language.operators.increment.php) |
| non-associative | instanceof | types |
| right | ! | logical |
| left | *** / % | arithmetic |
| left | + - . | arithmetic and string |
| left | << >> | bitwise |
| non-associative | < <= > >= | comparison |
| non-associative | == != === !== <> <=> | comparison |
| left | & | bitwise and references |
| left | ^ | bitwise |
| left | / | bitwise |
| left | && | logical |
| left | // | logical |
| right | ?? | comparison |
| left | ? : | ternary |
| right | = += -= *= **= /= .= %= &= /= ^= <<= >>= | assignment |
| left | and | logical |
| left | xor | logical |
| left | or | logical |