为什么 a会输出1 而b会输出2, 为什么a没有加1, 而b却加了1

<?php

$a=$b=1;

if($a=1||$b=1){

$a++;

$b++;

}

echo $a."----".$b;

?>

答案是:  1----2

慕前端7121920
浏览 1542回答 1
1回答

qq_青枣工作室_0

虽然不知道你是不小心还是故意,把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输出为空。
打开App,查看更多内容
随时随地看视频慕课网APP