请告诉我,如果条件为真,为什么不显示“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 语句?
您可以保留第一个,删除第二个返回语句。