扫码关注官方订阅号
请告诉我,如果条件为真,为什么不显示“ok”? 我不明白为什么如果触发条件就会显示“否”。
您的 else 块不会返回任何内容,因此除非您在第一次尝试时得到数字 5,否则它将转到 else 块,该块会调用自身,但实际上不会向初始调用返回任何值。
else
如果函数不返回任何内容,您将得到 NULL。
NULL
还在 else 块中添加一个 return 语句,以使返回的值一直冒泡到初始调用。
return
if ($number == 5) { return "ok"; } else { return get_number(); }
顺便说一句,我希望这不是真正的代码,而只是一些测试,因为它基本上只是一种过于复杂的回显 ok 的方式。它应该永远无法到达 echo 'no';
ok
echo 'no';
请将 else 条件从 get_number(); 更改为 return get_number(); 以进行递归调用。
get_number();
return get_number();
另外,为什么在 if 条件中使用 2 个 return 语句?
return "ok"; return false;
您可以保留第一个,删除第二个返回语句。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
您的
else块不会返回任何内容,因此除非您在第一次尝试时得到数字 5,否则它将转到else块,该块会调用自身,但实际上不会向初始调用返回任何值。如果函数不返回任何内容,您将得到
NULL。还在
else块中添加一个return语句,以使返回的值一直冒泡到初始调用。if ($number == 5) { return "ok"; } else { return get_number(); }顺便说一句,我希望这不是真正的代码,而只是一些测试,因为它基本上只是一种过于复杂的回显
ok的方式。它应该永远无法到达echo 'no';请将 else 条件从
get_number();更改为return get_number();以进行递归调用。另外,为什么在 if 条件中使用 2 个 return 语句?
您可以保留第一个,删除第二个返回语句。