PHP中的die()函数和exit()函数有什么区别?
我认为两者具有相同的功能,但我怀疑两者之间有什么不同……是什么?
PHP中的die()函数和exit()函数有什么区别?
我认为两者具有相同的功能,但我怀疑两者之间有什么不同……是什么?
当前回答
在功能方面,它们是相同的,但我在以下场景中使用它们以使代码可读:
当出现错误并必须停止执行时使用die()。
如。 死亡(“哦!出问题了’);
当没有错误并且必须停止执行时,使用exit()。
如。 exit('请求已成功处理!”);
其他回答
没有区别,它们是一样的。
PHP退出手册:
注意:这个语言结构相当于die()。
PHP模具手册:
这个语言结构相当于exit()。
正如所有其他正确答案所说,die和exit是相同的/别名。
尽管我有一个个人约定,当我想在预期和期望的时候结束脚本的执行时,我使用exit;。当我需要结束执行由于一些问题(无法连接到db,不能写入文件等),我使用die(“Something went wrong.”);“杀死”剧本。
当我使用exit时:
header( "Location: http://www.example.com/" ); /* Redirect browser */
/* Make sure that code below does not get executed when we redirect. */
exit; // I would like to end now.
当我使用die时:
$data = file_get_contents( "file.txt" );
if( $data === false ) {
die( "Failure." ); // I don't want to end, but I can't continue. Die, script! Die!
}
do_something_important( $data );
这样,当我在代码中的某个点看到exit时,我知道在这一点上我想退出,因为逻辑在这里结束。 当我看到die时,我知道我想继续执行,但我不能或不应该由于之前执行的错误。
当然,这只适用于独自从事一个项目。当有更多的人,没有人会阻止他们使用die或exit,这不符合我的惯例…
我至少在脚本中注意到,exit()将停止当前执行的脚本,并将控制传递回任何调用脚本,而die将停止php的运行。我想说这是一个很大的不同?
它们在本质上是相同的,尽管本文给出了不同的建议。
它们听起来差不多,但是exit()还允许您设置PHP脚本的退出码。
通常您并不真的需要这样做,但是在编写控制台PHP脚本时,您可能需要检查脚本是否以正确的方式完成了所有内容,例如Bash。
然后您可以使用exit()并在以后捕获它。 但是Die()不支持。
Die()在代码为0时始终存在。 因此,从本质上讲,die()命令执行以下操作:
<?php
echo "I am going to die";
exit(0);
?>
也就是:
<?php
die("I am going to die");
?>