退出,退出(),退出(0),死(),死(0) – 如何退出脚本
我相信所有这些(甚至die()
或die(0)
)是相同的。 如果它们不相同,哪个是成功退出脚本的首选? 如果它们是相同的,是否有任何首选的标准来表示成功的脚本完成? 我倾向于使用exit;
。
编辑:所有的答案都“ die()
和exit()
是相同的”即使我说在我的问题。 我更新了标题,希望更清楚地表明这不是我的问题。 我想从命令行脚本清楚地指出成功。
这些都是一样的。 我非常确定die()
只是一个直接的exit()
别名,但即使不是,它仍然是相同的行为。
当这些函数中的一个被赋予一个string参数时,它会在终止进程之前打印出string。 当它遇到一个255以下的整数时,这个整数被认为是进程的返回码,它被传回给调用PHP脚本的进程。 编写命令行应用程序(PHP不是纯网站!)时,这是特别有用的。
至于exit
, exit()
和exit(0)
之间的区别,实际上没有。 前两者之间肯定没有区别,因为exit
在技术上是一种语言结构,而不是函数,因此可以使用或不使用括号来调用,就像echo
一样。 返回代码0
意味着“这个程序运行成功/没有错误”,虽然我不知道什么时候你不通过一个参数, PHP.net说,一个无参数的exit
表明成功,所以我会打赌它返回0
,虽然PHP.net不显示默认的参数。
正如几个人所说的,die()和exit()完全一样。
如果您查看PHP文档 ,则有两个参数选项:
-
数值。 这只有在从命令行使用PHP而非Web服务器时才有用。 值为零表示成功。 非零表示发生故障情况。
-
一个string值。 这将在退出时显示给浏览器。
我不build议使用die()或exit(),而是使用exception和自定义顶级exception处理程序来pipe理失败情况。
你有更多的灵活性来做自动错误logging等事情。 另外,如果您使用PHP来实现JSON API,则此exception处理程序可以返回有效的,错误指示的JSON片段。
我会说,关于更好的语义die($arg);
应该用于exception或意外的终止,即使 – 当然,你仍然抓住了它。 并exit($arg);
应该用于进程的正常(预期/受控)结束,就像在break;
为一个或一个或一个switch
结构,但有一个明确的目的。
尽pipe如此,我个人经常使用一个通用的if { } else { }
结构来控制巨大进程的不同分支或输出缓冲,所以不必使用“exit”。
我也使用die($arg)
在简单的错误捕捉语义如
$db = mysql_connect([$args]) or die ($error);
…
你怎么看? 希望能帮助到你。
最好的祝福,
jjyepez
die();
只是exit();
的同义词exit();
function是一样的。
标准的方法是使用退出代码0表示成功,而其他任何表示错误的条件。
die()通常用于使用错误输出来终止脚本:
die("There was a fatal error");
在那里作为退出通常用作成功退出(至less在我的编码)
PHP手册说这些function是相同的。
die
完全等同于exit
。
从手册 :
如果status是一个整数,则该值将被用作退出状态。
这只有在你有一些基于退出状态的包装的时候才有用。 除非你有特别需要向外界报告退出代码,否则exit;
。