php优先级问题

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

举例:

1
2
3
4
5
6
7
8
9
10
11
$a=1;  
$b=2;
$c=3;
if($a=4 || $b=5 && $c=6){
$a++;
$b++;
}

var_dump($a);
var_dump($b);
var_dump($c);

输出结果:

说明:先运算 5&&$c ,结果是true,再运算 4 ,结果也是true, 后面的就不再执行,最后 再赋值运算$a=true; 进入if语句体进行运算,所以结果就是$a=true,$b=3,$c=3

作者

sunct

发布于

2019-03-27

更新于

2020-12-24

许可协议


评论