继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

四季花海
关注TA
已关注
手记 304
粉丝 42
获赞 161
<?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

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP