有你,世界才更有趣!

php优先级问题

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

左联表示表达式从左向右求值,右联相反

举例:

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

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

输出结果:

《php优先级问题》

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

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注