我仍然处于 PHP 学习的停滞状态。终止脚本时,
exit()
、die();
和return;
有什么区别?:
Return 返回一个值。这可以是任何东西,并且用于函数。
die
和 exit
(等效功能)终止脚本的执行。
return
将程序控制返回给调用模块。执行恢复于 被调用模块调用之后的语句。
如果从函数内部调用,则立即返回语句 结束当前函数的执行,并将其参数返回为 函数调用的值。 return 也结束了一个执行 eval() 语句或脚本文件。
如果从全局范围调用,则执行当前脚本 文件结束。如果包含或需要当前脚本文件, 然后控制权被传递回调用文件。此外,如果 包含当前脚本文件,则返回的值将 作为包含调用的值返回。如果 return 是从调用的 在主脚本文件中,然后脚本执行结束。如果 当前脚本文件由 auto_prepend_file 命名或 php.ini 中的 auto_append_file 配置选项,然后是该脚本 文件执行结束。
die
vs exit
die()
和 exit()
之间的区别在于它们的起源。
exit()
来自 C 中的 exit()
。die()
来自 Perl 中的 die
。die
:
。exit()
exit
:
。die()
PHP 手册函数别名列表:
是master函数的别名die
exit()
die()
和 exit()
在其他语言中是不同的,但在 PHP 中它们是相同的。
来自 又一个 PHP 咆哮:
...作为一名 C 和 Perl 编码员,我准备回答:“为什么,exit() 只是保释 以数字退出状态关闭程序,而 die() 打印出 向 stderr 发送错误消息并以 EXIT_FAILURE 状态退出。”但是随后 我记得我们正处于 PHP 语法混乱的境地。在 PHP 中,exit() 和 die() 是相同的。
设计者显然认为“嗯,让我们借用 C 的
exit() 。还有 Perl 如果我们也采用 Perl 中的 die(),人们可能会喜欢它。 哎呀!我们现在有两个退出函数!让我们让他们俩都 可以采用字符串或整数作为参数并使它们相同!” 最终的结果是,这并没有真正让事情变得“更容易”, 只是更令人困惑。 C 和 Perl 程序员将继续使用 exit() 来 仅抛出一个整数退出值,并用 die() 抛出错误消息 并失败退出。新手和 PHP 作为第一语言的人 可能会想知道“嗯,两个退出函数,我应该选择哪一个 使用?”手册没有解释为什么有 exit() 和 die()。
一般来说,PHP 有很多像这样的奇怪的冗余 - 它试图 对来自不同语言背景的人友好, 但这样做的同时,它会产生令人困惑的冗余。
注意:该语言构造等同于 die()。
die但是
和exit之间仍然有区别:
使用 die() 你可以发布一个字符串:die(“发生错误”);与使用 exit() 的结果相同
<?php
echo("An error occurred <br>");
exit(0);
?>
在命令行上使用 PHP,die(“发生错误”) 只需将“发生错误”打印到 STDOUT 并以正常退出代码 0 终止程序。
<?php
fwrite(STDERR, "An error occurred \n");
exit(0); //
?>