符号优先级

<?php


$a=2;
$b=5;
if($a=3||$b=2){
    $a++;
    $b++;
}

echo $a,'~~~',$b;
//1,6

//第二题

$a=2;
$b=5;
if($a=3&&$b=2){
    $a++;
    $b++;
}

echo $a,'~~~',$b;
//1,3
?>

解答:
1:逻辑或运算的"||"运算符 比赋值的"="运算符优先级要高.
2:||运算,是从左到右结合的.

因此, 先计算 5 || ($b=7), 程序只需要执行到"5||",就可以得出该表达式为真,即返回布尔值true
此时 $a的值已经变成布尔值true, 并且$b=7,没执行,仍是5

然后是 $a++; $b++;
须知 , ++,--对于布尔值无效,
因此,$a = true; $b = 6;

echo 出来的效果是1,6,如果你用var_dump打印,就会看到真相.

点评 :如果你在工作中写出这种代码,应该被批量,牵涉到很多表达式运算时,为了清晰,你应该用小括号包起来.
另,学程序为了开发,不要学孔乙已,寻章摘句老雕虫,没有意义.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值