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

新手请教下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++?


这是++运算符本身的特性啊,$a ++运算返回的就是没有自增前的结果。

请参考:
http://php.net/manual/zh/lang...


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


@tszlam 整洁


@tszlam 回答正解


你没搞清楚++符号

【热门文章】
【热门文章】