1. 问答
  2. 问答详情

下面的php代码的输出

$a=3;$b=6;$c=1;
if($a=5||$b=7 && $c=10){    
    var_dump($a, $b,$c);//bool(true) int(6) int(1)    
    $a++;    
    $b++;
}
var_dump($a, $b,$c);//bool(true) int(7) int(1)

1个回答

0

采纳

理解运算符的优先级的问题

把你的那个判断加上括号,那么你可以这么理解这个逻辑判断
$a = ( 5 || ( ( $b = 7 ) && ( $c = 10 ) ) )
你可以把括号加上放到程序中测试,结果也还是一样的。

从上面我们就可以看出,由于=的优先级是最低的,所以先执行了( 5 || ( ( $b = 7 ) && ( $c = 10 ) ) )

由于||和&&的操作符是同级的,所以从左到右进行操作,5这个数字被程序判断为true。
根据或操作原则。二者中只要有一者判断为true则立即结束判断,所以或操作后面的都不执行了。

最后将true赋值给$a变量。


撰写答案

验证码
点击刷新