$a = 3;
$b = 5;
if ( $a = 5 || $b = 7 ) {
$a++;
$b++;
}
a和b 的值是多少?
最后的答案是 1和6 。
这个问题的关键就是 = 是赋值运算符 最后进行运算 所以上面的判断实质是这样的
$a = 3;
$b = 5;
if ( $a = (5 || $b = 7) ) {
$a++;
$b++;
}
先进行 || 判断 而且 || 是有一个从左到右进行 当有左面成立的时候 右侧是不进行的了 所以if里其实就变成了 $a = true
然后进到判断里的时候 布尔值是不能进行 ++运算的 所以最后的结果就是 $a=1,$b=6.