繁体   English   中英

PHP脚本末尾是否需要die()或exit()函数?

[英]Is the die() or exit() function needed in the end of a php script?

在php脚本中,我进行了一些测试,并在脚本之后找到了html页面。

当测试失败时,我会调用die(“测试1失败”); 如果没有测试失败,则php脚本到达末尾?>,然后在php脚本之后加载html代码。

这是个好程序吗? 还是我需要在PHP脚本结束之前写die()或exit()?

不,您不必写那也不是最佳实践。 如果脚本到达最后而没有致命错误,它将退出。

如果这对您来说意味着“测试”,那您就错了。 测试应该使用单元测试来完成。 对于php有phpunit 试试看,这是测试代码的正确方法。

编辑:正如CompuChip在评论中所说,退出的唯一有用用例是当您编写基于php的应返回错误代码的shell脚本时。 有关exit()函数,请参见文档的参数部分

不,您不需要这样做,但是在编写控制台PHP脚本时,您可能需要检查例如Bash是否脚本以正确的方式完成了所有操作。 那是当您使用exit()或die()时

PHP脚本末尾是否需要die()或exit()函数?

不,PHP将结束脚本本身。 如果脚本是包含的文件(从另一个文件调用),则它将在包含的文件中结束脚本,然后在包含位置之后继续原始文件中的任何代码(如果有任何代码)。

因此,您可以将die()exit()放在所需或需要的位置。

为了进行测试,请将其放在要测试的每个代码块之后。 如果我只是想让PHP向我展示一些内容然后停止,那么我将在测试的某些部分中使用它们,例如打印出数组以确保其正确构建等。
例如:

print_r($array);
exit();

对于其他代码测试,有时我会仅在“ if / else”内回显“ A节已工作”等。 如果我想知道代码的特定部分是否正常工作,或者是否满足某些条件(基本上,它使您可以跟踪PHP本身在代码中的运行位置)。

所有这些,不要在生产代码中使用die()exit() 您应该使用更友好和受控的消息传递设置。 出于安全原因和视觉上的考虑,您可能会给他们一些信息,例如“错误无法加载SomethingSecret”。 同样,当您仅分页加载一半,然后发出屏幕错误消息时,它看起来并不漂亮,这对最终用户可能毫无意义。

阅读以下内容:
PHP错误处理:die()VS trigger_error()VS throw异常

不,您不必在脚本的末尾使用这些功能,因为它始终存在于脚本的末尾。

除非在非常特殊的情况下,否则永远不要使用die()或在生产PHP脚本中exit 而是,重新设计您的代码路径以仅向用户显示错误消息,而不是提早退出脚本。

不行 不建议使用它

使用trigger_errorerror_log将测试记录在error.log中。 然后检查一下。

无需在模版结尾处放置骰子或退出。 但是您可以使用exit终止具有特定退出代码的脚本(默认情况下为0)。

例如

$ php -r "/* does nothing */;"
$ echo $?
0
$ php -r "exit(123);"
$ echo $?
123

http://php.net/exit

从文档中:

脚本执行结束后,将立即关闭到服务器的链接,除非更早地通过显式调用mysql_close()关闭了该链接。

是的,如果要运行其他代码(例如HTML代码),则无需调用die()或exit(0。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM