$x = true;
$y = false;
$z = $y=1 || ($x = 2);
var_dump($x);
var_dump($y);
var_dump($z);
本人小白,刚刚学习,上面是php的代码,想请问上面的输出结果是什么?为什么是这样?
($x = 2) 结果是2,因为是单个等于
$y=1结果是1
$z = $y=1 || ($x = 2);
结果是 1 || 2,所以结果是true
var_dump($x);
var_dump($y);
此时x=1 y=2
var_dump($z);
z = true
输出结果是 bool(true) bool(true) bool(true)
$z = $y=1 || ($x = 2);可以这样分解:
1. $y=1 || ($x = 2);
它一看左边是个1,就会执行
$ y=true
而不会执行 $x = 2 ,
然后执行:
2. $z = $y
即
$z = true;
所以最后输出结果就是 bool(true) bool(true) bool(true)
如果你把上面的||改成&&, 或者把1或2改成其它数据,
最后输出结果是什么,你按照我上面的分析,应该很快就能得出结论了。
其实php手册就有一个完整运算符表,可以参考,,,关键是 || 运算符 一旦左边成立为true 就不会执行右边 同理 && 也是