复制代码 代码如下:
$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);
有兴趣的同学可以思考一下:)
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn