php條件循環錯誤條件
P粉536532781
P粉536532781 2023-09-07 22:34:01
0
2
575

請告訴我,如果條件為真,為什麼不顯示「ok」? 我不明白為什麼如果觸發條件就會顯示“否”。

<?php if (get_number() == "ok") {
    echo "ok";
}
else {
    echo "no";
}
function get_number() {
    $number = rand(1, 10);
    echo $number;
    if ($number == 5) {
        return "ok";
        return false;
    }
    else {
        get_number();
    }
} ?>

P粉536532781
P粉536532781

全部回覆(2)
P粉741678385

您的else 區塊不會傳回任何內容,因此除非您在第一次嘗試時得到數字5,否則它將轉到else 區塊,該區塊會調用自身,但實際上不會向初始呼叫傳回任何值。

如果函數不傳回任何內容,您將得到 NULL

也會在 else 區塊中加入一個 return 語句,以使傳回的值一直冒泡到初始呼叫。

if ($number == 5) {
    return "ok";
}
else {
    return get_number();
}

順便說一句,我希望這不是真正的程式碼,而只是一些測試,因為它基本上只是一種過於複雜的回顯 ok 的方式。它應該永遠無法到達 echo 'no';

P粉696605833

請將 else 條件從 get_number(); 更改為 return get_number(); 以進行遞歸呼叫。

另外,為什麼在 if 條件中使用 2 個 return 語句?

return "ok";
return false;

您可以保留第一個,刪除第二個回傳語句。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板