运算符
运算符操作或作用于一个(一元运算符,如 !$a 和++$a),两个(二元运算符,如 $a + $b 或 $a >> $b)或三个(唯一的三元运算符是 $a ? $b : $c)表达式。
运算符优先级会影响运算符的分组方式(就像有括号一样)。以下是按优先顺序排列的运算符列表(第二列中的运算符)。如果多个运算符在一行中,则分组由代码顺序确定,其中第一列指示关联性(请参阅示例)。
| 协会 | 操作者 |
|---|---|
| 剩下 | -> :: |
| 没有 | clone new |
| 剩下 | [ |
| 对 | ** |
| 对 | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ |
| 没有 | instanceof |
| 对 | ! |
| 剩下 | * / % |
| 剩下 | + - . |
| 剩下 | << >> |
| 没有 | < <= > >= |
| 没有 | == != === !== <> <=> |
| 剩下 | & |
| 剩下 | ^ |
| 剩下 | | |
| 剩下 | && |
| 剩下 | || |
| 对 | ?? |
| 剩下 | ? : |
| 对 | = += -= *= **= /= .= %= &=` |
| 剩下 | and |
| 剩下 | xor |
| 剩下 | or |
完整信息在 Stack Overflow 。
请注意,始终首先评估函数和语言结构(例如 print),但将根据上述优先级/关联性规则使用任何返回值。如果省略语言构造之后的括号,则需要特别小心。例如 echo 2 . print 3 + 4; echo 的 721:print 部分评估 3 + 4,打印结果 7 并返回 1。之后,2 被回应,与 print(1)的返回值连接在一起。