第一题:
<!--lang:php--> $a=2; $b=5; if($a=3||$b=2){ $a++; $b++; }echo $a,'~~~',$b;//1,6
第二题:
<!--lang:php--> $a=2; $b=5; if($a=3&&$b=2){ $a++; $b++; }echo $a,'~~~',$b;//1,3
这道题主要有两个关键点:
- || 的优先级比 = 高
- 布尔值在自增 自减下 没有效果
第一题:
先执行的3||($b=2)
因为3为真,所以到 3|| 就结束了,$b=2 并没有执行,$b还是5 因为(3||)
为真,所以 $a 赋值为布尔值 上面说过布尔值在自增 自减下 没有效果
所以$a 的值还是为布尔值, 在PHP 里显示为1 var_dump() 一下就能看出来了。