运算符优先级表

未匹配的标注

运算符优先级表

下表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。

说明:左 = 从左到右,右 = 从右到左。

结合方向 运算符 附加信息
clone new clone 和 new
[ array()
++ – ~ (int) (float) (string) (array) (object) (bool) @ 类型和递增/递减
instanceof 类型
! 逻辑运算符
* / % 算术运算符
+ – . 算术运算符和字符串运算符
<< >> 位运算符
== != === !== <> 比较运算符
& 位运算符和引用
^ 位运算符
| 位运算符
&& 逻辑运算符
|| 逻辑运算符
? : 三元运算符
= += -= *= /= .= %= &= |= ^= <<= >>= => 赋值运算符
and 逻辑运算符
xor 逻辑运算符
or 逻辑运算符
, 多处用到

注意

运算符优先级中,or 和 ||,&& 和 and 都是逻辑运算符,效果一样,但是其优先级却不一样。

  1. 与: “&&” 比 “and” 的优先级高
  2. 或: “||” 比 “or” 的优先级高

括号的使用

通过括号的配对来明确标明运算顺序,而非靠运算符优先级和结合性来决定,通常能够增加代码的可读性。

<?php
// 括号优先运算

$a = 1;
$b = 2;
$c = 3;

$d = $a + $b * $c;

echo $d; // 先乘除后加减,1+2*3, 输出 7

$e = ($a + $b) * $c;  // 使用括号

echo $e;  //先算括号内的,再乘,(1+2)*3, 输出 9

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~