PHP基础陷阱题(变量赋值)

  

复制代码 代码如下:

  <?php

  $a=3;

  $b=6;

  if($a=5||$b=7){

  $a++;

  $b++;

  }

  var_dump($a, $b);

  陷阱一

  把$a=5、$b=7看成了$a==5、$b==7

  错误结果:3,6

  陷阱二

  运算符的优先级,认为$a=5赋值成功$b=7没执行

  错误结果:6,7

  正确理解

  陷阱是运算符的优先,赋值运算符(=)的优先级是最低的,所以正确理解应该是

  $a=(5||$b=7)

  正确结果:true,7

  升级一下

  变形一

  

复制代码 代码如下:

  $a=3;

  $b=6;

  $c=1;

  if($a=5||$b=7 && $c=10){

  $a++;

  $b++;

  }

  var_dump($a, $b,$c);

  变形二

  

复制代码 代码如下:

  $a=3;

  $b=6;

  $c=1;

  if($a=0||$b=7 && $c=10){

  $a++;

  $b++;

  }

  var_dump($a, $b,$c);

  有兴趣的同学可以思考一下:)