簡體   English   中英

為什么分配和返回的結果不同?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM