我还在学习PHP学习方法。终止脚本时,exit();
/ die();
和return;
之间的区别是什么?:
答案 0 :(得分:8)
返回值返回。这可以是任何东西,也可用于功能。
答案 1 :(得分:2)
返回值返回一个值(char,int,string,array ...)并退出函数。
来自php手册:
注意:此语言构造等同于die()。
但死和退出之间仍有区别:
使用die()你可以发一个字符串:die("发生错误");
使用exit()
的结果相同<?php
echo("An error occurred <br>");
exit(0);
?>
或者如果您是cli或unix shell:
在命令行中使用PHP,死(&#34;发生错误&#34;)只是打印&#34;发生错误&#34;到STDOUT并以正常退出代码0终止程序。
<?php
fwrite(STDERR, "An error occurred \n");
exit(0); //
?>
答案 2 :(得分:2)
die
和exit
(equivalent functions)终止脚本的执行。
return
将程序控制返回给调用模块。执行恢复 调用模块调用后的语句。
如果在函数内调用,则立即返回语句 结束当前函数的执行,并将其参数作为 函数调用的值。 return也结束了执行 eval()语句或脚本文件。
如果从全局范围调用,则执行当前脚本 文件已结束。如果包含或需要当前脚本文件, 然后将控制权传递回调用文件。而且,如果 包含当前脚本文件,然后返回给予的值 作为包含调用的值返回。如果从中调用return 在主脚本文件中,脚本执行结束。如果 当前脚本文件由auto_prepend_file或 php.ini中的auto_append_file配置选项,然后是该脚本 文件的执行结束。
die
vs exit
die
的PHP手册:
此语言构造等同于
exit()
。
exit
的PHP手册:
注意:此语言构造等同于
die()
。
List of Function Aliases的PHP手册:
的别名
die()
和exit()
与其他语言不同,但在PHP中它们完全相同。
......作为一名C和Perl编码员,我准备回答:“为什么,退出()只是保释 用数字退出状态关闭程序,而die()打印出来 向stderr发送错误消息并以EXIT_FAILURE状态退出。“但是接着 我记得我们处于混乱的PHP语法之中。
在PHP中,exit()和die()是相同的。
设计师显然认为“嗯,让我们借exit() from C。而Perl 如果我们也采用die() as is from Perl,人们可能会喜欢它。 哎呀!我们现在有两个退出功能!让我们两个都做到 可以将字符串或整数作为参数并使它们相同!“
最终的结果是,这并没有让事情变得“更容易”, 更令人困惑的是。 C和Perl编码器将继续使用exit()来 只抛出一个整数退出值,并且die()抛出一条错误信息 并以失败退出。新手和PHP-as-a-first-language people 可能会想“嗯,两个退出功能,哪一个应该我 使用?“手册没有解释为什么有exit()和die()。
一般来说,PHP有很多像这样的奇怪冗余 - 它试图 对来自不同语言背景的人友好, 但这样做会造成令人困惑的冗余。