运算符
PHP中文手册首页

运算符优先级

运算符的优先级指明如何把两个表达式"稳固地"连接在一起。例如,表达式1 + 5 * 3,答案是16而不是18,因为乘法("*")运算符比加法("+")运算符的优先级更高。 如果需要的话,括号可以用来强制优先级。例如:(1 + 5) * 3等于18。 如果运算符的优先级相等,那么从左边到右的进行结合。

下面的表格,按照由高到低的顺序列出运算符的优先级。 同一行的运算符优先级相等,它们的组合顺序决定了它们的执行顺序。

运算符优先级
结合性 运算符 额外信息
clone new clonenew运算符
[ array()运算符
++ -- 自增/自减运算符
~ - (int) (float) (string) (array) (object) (bool) @ 类型运算符
instanceof 类型运算符
! 逻辑运算符
* / % 算术运算符
+ - . 算术字符串运算符
<< >> 位运算符
< <= > >= <> 比较运算符
== != === !== 比较运算符
& 引用运算符
^ 位运算符
| 位运算符
&& 逻辑运算符
|| 逻辑运算符
? : 三元运算符
= += -= *= /= .= %= &= |= ^= <<= >>= 赋值运算符
and 逻辑运算符
xor 逻辑运算符
or 逻辑运算符
, 很多用途

左结合表明表达式从左至右执行,右结合则反之。

例1 结合性

<?php
$a 
5// (3 * 3) % 5 = 4
$a true true 2// (true ? 0 : true) ? 1 : 2 = 2

$a 1;
$b 2;
$a $b += 3// $a = ($b += 3) -> $a = 5, $b = 5
?>

使用括号改善代码的可读性。

注意: 虽然=的优先级最低,PHP仍旧允许如下的表达式:if (!$a = foo()),函数foo()返回值赋值给$a


Operators
PHP中文手册首页





代码中国其他文档:Google Maps API文档 | Google文件系统论文 | 《信息检索》翻译版