<?php$a=$b=1;if($a=1||$b=1){ $a++; $b++;}echo $a."----".$b;?>答案是: 1----2
1 回答
已采纳
qq_青枣工作室_0
TA贡献446条经验 获得超754个赞
虽然不知道你是不小心还是故意,把if($a==1||$b==1) 写为 if($a=1||$b=1)。
这里可以看到PHP的坑。
首先,if($a=1||$b=1) 这是先给$a赋值为 1||$b=1,是一个逻辑或运算,结果为true。所以 $a=true了,然后$a++对一个true自增。
PHP的坑:
在PHP里,对布尔值true或false自增或自减,都不会改变结果,直接返回原来的布尔值。
但是,如果是$a += 1 则会把布尔值转为1或者0,再运算。
结论:如果$a=true,那么$a++还是true,而$a+=1会变成2。
另外,echo true会输出1。echo false输出为空。
- 1 回答
- 1 关注
- 1541 浏览
添加回答
举报
0/150
提交
取消