exit(); die(); return false;

35

可能重复:
PHP中die()和exit()有什么区别?

我猜主要问题在于这3个函数有什么不同?

每一个的正确语义用法是什么?

从我看到的,return false; 可以终止函数的执行,而 die();exit(); 会完全阻止任何进一步的代码运行。

这样说是否正确?


这个问题之前已经被问过了: https://dev59.com/knI-5IYBdhLWcg3wj5FG - Gigi
1
是的,你说得对。在函数中使用return关键字来返回值,而使用die()/exit()函数则会终止脚本的执行。 - Michael Berkowski
1
不,这并不包括返回 :)) - ajreal
2
@Gigi:我建议将另一个问题关闭,因为它是这个问题的重复,而且范围稍微更广一些(因为它还涉及到返回值)。 - derobert
2个回答

38

die()exit()是完全相同的; 它们停止整个PHP程序并返回到操作系统。它们是同一个函数的两个不同名称。

另一方面,return结束函数调用并返回给调用者。在程序结束时,return设置返回给操作系统的状态值;无论如何程序都将退出。


1
那么为什么需要两个完全做同样事情的函数,一定有其原因。 - daryl
11
只是“语法糖”。Perl 有 die(),许多其他语言有 exit(),所以 PHP 通过同时拥有两者来尝试使在不同语言之间的转换更容易,我想。 - Ernest Friedman-Hill
1
@Brogrammer 不完全是这样。 至少不是一个重要的原因。 它可能是一些兼容性问题,遗留问题等等。 无论原因是什么 - 都不重要。 - Your Common Sense
1
它们实际上不是两个函数,die只是exit的别名。 - user898741
3
不正确。 die()exit() 相同,但反之不然。您可以为 exit()传递参数:要么是exit(状态代码数字)exit(字符串状态),这将从 PHP 传递到操作系统或其他系统。 - d.sergeiev
显示剩余2条评论

11
根据文档PHP: exit Manualdie()exit()的别名,它们执行相同的功能,即结束脚本。

return语句结束一个函数而不是整个脚本,并返回您选择的值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接