$a = 0;
$b = 0;
if($a=3 or $b=3){
$a++;
$b++;
}
echo $a.",".$b;
返还值为4,1
$a = 0;
$b = 0;
if($a=3 || $b=3){
$a++;
$b++;
}
echo $a.",".$b;
返还值为1,1
why?
第一则中的or语法错了嘛?
wamp环境,php5.5.12
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
你以为
if($a=3 || $b=3)是if(($a=3) || ($b=3))其实由于运算符优先级的原因,是
if($a = ( 3 || ($b = 3) ) )然后
3 || ($b = 3)这一句,由于短路特性($b = 3)并没有执行,这句的返回值是布尔类型true,返回给$a,echo出来是1,其自增值也不会改变。$b依然是0,自增成1。