面试题之运算符优先级的坑 $a = 1; $b = 2; $c = 3; if ($a=1 && $b=3 || $c=5){$a++; $b++; $c++;}

  

 

由图可见 运算符优先级为 ‘&&’ > ‘||’ > ‘=’

 

在这里他将首先执行 && 操作 然后执行 || 操作

也就是首先

    $a = (1 && ($b=3 || $c=5))

   表达式左边 1 ture

   表达式右变 $b =3 也为 true

   所以 $a = true

接着  

  $a = (1 && $b=3 || $c=5)  ->  $b = (3 || $c=5)

  在这里

  3直接就为true  

  $c= 5 不执行

  所以 $b = true

 

 

所以打印出来 $a = true  $b = true  $c = 3+1

猜你喜欢

转载自www.cnblogs.com/lky-19990802/p/10523135.html