[英]Why results of assign and return is different?
变量赋值的结果与函数的返回结果不同:
function test() {
return !true
or !true
or !count(4)
or (
new stdClass() and true
);
}
$result = !true
or !true
or !count(4)
or (
new stdClass() and true
);
echo (int)$result . PHP_EOL; // 0
echo (int)test() . PHP_EOL; // 1
这是由于操作员优先 。
分配操作的优先级高于and
/ or
。
第一个等于:
function test() {
return (!true
or !true
or !count(4)
or (
new stdClass() and true
));
}
而第二个等于:
($result = !true)
or !true
or !count(4)
or (
new stdClass() and true
);
使用&&
/ ||
代替and
/ or
,则结果将相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.