面试题之运算符优先级的坑 $a = 1; $b = 2; $c = 3; if ($a=1 && $b=3 || $c=5){$a++; $b++; $c++;}
由图可见 运算符优先级为 ‘&&’ > ‘||’ > ‘=’
在这里他将首先执行 && 操作 然后执行 || 操作
也就是首先
$a = (1 && ($b=3 || $c=5))
表达式左边 1 为 ture
表达式右变 $b =3 也为 true
所以 $a = true
接着
$a = (1 && $b=3 || $c=5) -> $b = (3 || $c=5)
在这里
3直接就为true
$c= 5 不执行
所以 $b = true
所以打印出来 $a = true $b = true $c = 3+1