請告訴我,如果條件為真,為什麼不顯示「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(); } } ?>
您的
else
區塊不會傳回任何內容,因此除非您在第一次嘗試時得到數字5,否則它將轉到else
區塊,該區塊會調用自身,但實際上不會向初始呼叫傳回任何值。如果函數不傳回任何內容,您將得到
NULL
。也會在
else
區塊中加入一個return
語句,以使傳回的值一直冒泡到初始呼叫。順便說一句,我希望這不是真正的程式碼,而只是一些測試,因為它基本上只是一種過於複雜的回顯
ok
的方式。它應該永遠無法到達echo 'no';
請將 else 條件從
get_number();
更改為return get_number();
以進行遞歸呼叫。另外,為什麼在 if 條件中使用 2 個 return 語句?
您可以保留第一個,刪除第二個回傳語句。