运算符

运算符操作或作用于一个(一元运算符,如 !$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 的 721print 部分评估 3 + 4,打印结果 7 并返回 1。之后,2 被回应,与 print1)的返回值连接在一起。