我相信所有这些(甚至die()或者die(0))都是相同的.如果它们不相同,哪个成功退出脚本?如果它们相同,是否有任何首选标准表示脚本成功完成?我倾向于使用exit;.
编辑:即使我在我的问题中说,所有的答案都" die()和exit()相同".我更新了标题,希望更清楚,这不是我的问题.我想从命令行脚本中清楚地表明成功.
Age*_*rum 64
这些都是相同的.我很确定die()它只是一个直接的别名exit(),但即使它不是,它仍然行为相同.
当其中一个函数被赋予字符串参数时,它会在终止进程之前打印出该字符串.当遇到255以下的整数时,该整数被视为进程的返回代码,该代码将被传递回调用PHP脚本的进程.这在编写命令行应用程序时非常有用(PHP不是仅限Web的!).
至于之间的差异exit,exit()和exit(0),真的是没有的.前两个之间肯定没有区别,因为exit从技术上讲,它是一种语言结构,而不是一个函数,所以可以使用或不使用括号来调用它,就像它一样echo.返回代码0意味着"这个程序成功运行/没有错误",虽然我不知道当你没有传递参数时究竟发生了什么,但是PHP.net说没有参数exit表示成功,所以我敢打赌它返回0,但PHP.net再次没有显示参数的默认值.
我会说,关于更好的语义die($arg);应该用于异常或意外终止,即使当然 - 当然 - 你仍然抓住了它.并且exit($arg);应该被用于正常的(预期/控制)的过程的结束,如在break;一个for或while或一switch结构,但与最终结束.
然而..我个人经常使用一般if { } else { }结构来控制巨大进程的不同分支或输出缓冲,所以不必使用"退出"..
我也使用die($arg)像in中那样的简单错误捕获语义
$db = mysql_connect([$args]) or die ($error); ...