[英]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.