新手请教下php运算符优先级与手册上不一致

$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++?

阅读 3.4k
4 个回答

你的++放后面意思是先比较之后再自增,所以左边是10>10,是假,&&如果第一个为假的话后面是不会继续下去的,所以右边那部分等于没写。&&为假所以没有"OK",因为&&为假所以右边直接不执行,所以$b还是7。
你把++放到$a和$b前面试试,应该就有你想要的结果

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏