为了账号安全,请及时绑定邮箱和手机立即绑定

PHP有趣的题目,关于运算符优先级

标签:
PHP
<?php $a = 3;
$b = 4;if (($a=5) && ($b=6)) {
    $a+=1;
    $b+=1;
}echo $a;echo "<br>";echo $b;

输出$a=6;$b=7。赋值永远为条件真,除非赋值为0。

<?php $a = 3;
$b = 4;if (($a=0) && ($b=6)) {
    $a+=1;
    $b+=1;
}echo $a;echo "<br>";echo $b;

输出$a=0;$b=4。不执行逻辑与后的内容。

<?php $a = 3;
$b = 4;if ($a=5 && ($b=6)) {
    $a+=1;
    $b+=1;
}echo $a;echo "<br>";echo $b;

输出$a=2;$b=7。先执行5 && true == true(1);赋值运算符优先级最低。

<?php $a = 3;
$b = 4;if ($a=5 && $b=6) {
    $a+=1;
    $b+=1;
}echo $a;echo "<br>";echo $b;

输出$a=2;$b=7。特殊情况,同上(&&后面的内容为最小执行单位)。

<?php $a = 3;
$b = 4;if ($a=5 && $b=6) {
    $a++;
    $b++;
}echo $a;echo "<br>";echo $b;

输出$a=1;$b=7。重点!$a++ != $a+=1;,当$a为true时,$a++依然为true(1);不参与数学运算。echo一个true时会输出1,但实际上最终结果应该是$a=true;$b=7;

<?php $a = 3;
$b = 4;if ($a=5 || $b=6) {
    $a++;
    $b++;
}echo $a;echo "<br>";echo $b;

输出$a=1;$b=5。5为这true不执行$b=6,所以$a=1;$b=5

<?php $a = 3;
$b = 4;if ($a=0 || $b=6) {
    $a++;
    $b++;
}echo $a;echo "<br>";echo $b;

输出$a=1;$b=7。除0以外的赋值均为true,0赋值相当于false,执行$b=6,所以$a=1;$b=7



作者:琳的小奶狗
链接:https://www.jianshu.com/p/f11c90ead208

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消