$a = 3; $b = 6; if ($a = 4 || $b = 4) { $a++; $b++; } echo $a; //输出 1 echo $b; //输出 7
逛鸟哥博客,看评论区有个新手提了个问题, 似曾相识啊。 暂且把它命名为“爆款面试题”吧,其实这里主要考察的是运算符优先级、自增运算的问题。
不擅长组织语言, 上个注释吧。
1 $a = 3; 2 $b = 6; 3 4 if ($a = 4 || $b = 4) { //等同于 if ($a = (4 || $b = 4)) { 5 var_dump($a); // bool true 6 var_dump($b); // int 6 7 $a++; 8 $b++; 9 var_dump($a); // bool true 因为布尔值自增运算无效 10 } 11 echo $a; //输出 1 12 echo $b; //输出 7