在php脚本中,我有一些测试,在脚本之后是html页面。
当测试失败时我会叫死(“测试1失败”); 如果没有测试失败,PHP脚本到达终点?>然后在php脚本之后加载html代码。
这是一个很好的程序吗?或者我需要在php脚本结束之前编写die()或exit()?
答案 0 :(得分:4)
不,你不必写那个,这是不是最佳做法。如果脚本到达终点而没有致命的错误,它将退出。
如果这意味着“测试”,那你错了。应使用unit tests进行测试。对于php,有phpunit。试一试,这是测试代码的正确方法。
编辑:正如CompuChip在评论中所说,退出的唯一有用用例是当你编写一个基于php的shell脚本时应该返回错误代码。 See the parameter section of the documentation for the exit() function
答案 1 :(得分:0)
不,你不需要它,但是在编写控制台PHP脚本时,如果脚本以正确的方式完成所有操作,你可能想要检查例如Bash。那是你使用exit()或die()
的时候答案 2 :(得分:0)
php脚本结尾需要die()或exit()函数吗?
不,PHP将结束脚本本身。如果脚本是一个包含文件(从另一个文件调用),那么它将在包含的文件中结束脚本,然后继续包含原始文件中的任何代码(如果有任何代码)。
因此,您可以将die()
或exit()
放在任何您想要或需要的位置。
进行测试,将其放在您测试的每个代码块之后。我在测试的某些部分使用它们,如果我只是想让PHP向我展示一些东西然后停止,比如打印一个数组以确保它正确构造等。
例如:
print_r($array);
exit();
对于其他代码测试,我有时只是回应“A部分工作”等,例如在if / else中。如果我想知道代码的某个特定部分是否正常工作或者是否满足某些条件(基本上,它可以让您跟踪代码中PHP本身的位置)。
所有这一切,请勿在生产代码中使用die()
或exit()
。您应该使用更友好和受控的消息传递设置。出于安全原因和视觉效果,您可能会给他们一些信息,例如“ERROR Failed to load SomethingSecret”。当你只设置一半的负载,然后发出屏幕上的错误信息时,它看起来并不漂亮,这可能对最终用户没有任何意义。
请仔细阅读:
PHP Error handling: die() Vs trigger_error() Vs throw Exception
答案 3 :(得分:-1)
不,您不必在脚本末尾使用这些功能,因为它始终存在于脚本的末尾。
答案 4 :(得分:-1)
除非在特定情况下,否则不应在生产PHP脚本中使用die()
或exit
。相反,重新编写代码路径只是向用户显示错误消息,而不是提前退出脚本。
答案 5 :(得分:-1)
使用trigger_error
或error_log
在error.log中记录测试。然后检查一下。
答案 6 :(得分:-1)
无需在scipt的末尾放置骰子或出口。 但是您可以使用exit来使用特定的退出代码终止脚本(默认情况下为0)。
E.g
$ php -r "/* does nothing */;"
$ echo $?
0
$ php -r "exit(123);"
$ echo $?
123
答案 7 :(得分:-1)
答案 8 :(得分:-1)
不,你不需要调用die()或退出(如果你有其他代码可以运行,就像你的HTML代码一样