PHP Manual
后退 |  | 前进

# 章 15. 运算符

# 运算符优先级

运算符优先级指定了两个表达式绑定得有多“紧密”。例如，表达式 1 + 5 * 3 的结果是 16 而不是 18 是因为乘号（“*”）的优先级比加号（“+”）高。必要时可以用括号来强制改变优先级。例如：(1 + 5) * 3 的值为 18。

下表从低到高列出了运算符的优先级。

表格 15-1. 运算符优先级

结合方向 | 运算符
--- | ---
左 | ,
左 | or
左 | xor
左 | and
右 | print
右 | = += -= *= /= .= %= &= |= ^= ~= <<= >>=
左 | ? :
左 | ||
左 | &&
左 | |
左 | ^
左 | &
无 | == != === !==
无 | < <= > >=
左 | << >>
左 | + - .
左 | * / %
右 | ! ~ ++ -- (int) (float) (string) (array) (object) @
右 | [
无 | new

> 注: 尽管 ! 比 = 的优先级高，PHP 仍旧允许类似如下的表达式：if (!$a = foo())，在此例中 foo() 的输出被赋给了 $a。

后退 | 起点 | 前进
表达式 | 上一级 | 算术运算符