$a = 10;
$b = 7;
if($a++>10 && $b++>7){echo 'OK';}
echo $a,$b;
PHP手册上描述的是++优先级高于>,而>优先级高于&&。应该是 $a=11再和10比较结果为真再计算$b=8与7比较结果应该都为真。而实际echo出$a=11,$b=7。为何先进行$a与10比较,再进行$a++?
$a = 10;
$b = 7;
if($a++>10 && $b++>7){echo 'OK';}
echo $a,$b;
PHP手册上描述的是++优先级高于>,而>优先级高于&&。应该是 $a=11再和10比较结果为真再计算$b=8与7比较结果应该都为真。而实际echo出$a=11,$b=7。为何先进行$a与10比较,再进行$a++?
你的++放后面意思是先比较之后再自增,所以左边是10>10,是假,&&如果第一个为假的话后面是不会继续下去的,所以右边那部分等于没写。&&为假所以没有"OK",因为&&为假所以右边直接不执行,所以$b还是7。
你把++放到$a和$b前面试试,应该就有你想要的结果