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