php 代码后面是 结尾,php脚本结尾需要die()或exit()函数吗?

在php脚本中,我有一些测试,在脚本之后是html页面。

当测试失败时,我称之为死亡("测试1失败");

如果没有测试失败,php脚本到达终点?>然后在php脚本之后加载html代码。

这是一个很好的程序吗? 或者我需要在php脚本结束之前编写die()或exit()?

不。当脚本到达结尾时,它仍会退出。

阅读本文:stackoverflow.com/questions/1795025/

只有当某人对您的脚本的返回代码感兴趣时才有用,例如在shell环境中使用它时。 对于大多数用途,特别是在Web服务器上生成内容,根据以下答案,这不是必需的。

不,你不必写那个,这不是最好的做法。如果脚本到达末尾没有致命的错误,它将退出。

如果这意味着你"测试",那你就错了。应使用单元测试进行测试。对于PHP有phpunit。试一试,这是测试代码的正确方法。

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

测试我的意思是我将用户注册到数据库。 如果某些事情失败,则测试失败。

这可以而且应该通过单元测试来测试。 你"测试"的方式是调试,而不是测试。 而不是"死"你的脚本应该向用户传递适当的错误消息,而不仅仅是"kilL"脚本。

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

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

所以你把die()或exit()放在你想要或需要的地方。

要进行测试,请将其放在您测试的每个代码块之后。我在测试的某些部分使用它们,如果我只是想让PHP向我展示一些东西然后停止,比如打印出一个数组以确保它正确构造等等。

例如:

print_r($array);

exit();

对于其他代码测试,我有时只是回应"A部分工作"等,例如在if / else中。如果我想知道代码的某个特定部分是否正常工作或者是否满足某些条件(基本上,它可以让您跟踪代码中PHP本身的位置)。

总而言之,不要在生产代码中使用die()或exit()。您应该使用更友好和受控的消息传递设置。出于安全原因和视觉效果,您可能会给他们一些信息,例如"ERROR Failed to load SomethingSecret"。当你只设置一半的负载,然后发出屏幕上的错误信息时,它看起来并不漂亮,这可能对最终用户没有任何意义。

请仔细阅读:

PHP错误处理:die()Vs trigger_error()Vs抛出异常

不,你不需要它,但是在编写控制台PHP脚本时,如果脚本以正确的方式完成所有操作,你可能想要检查例如Bash。那是你使用exit()或die()的时候

不,你不需要调用die()或退出(如果你有其他代码要运行,就像你的HTML代码一样)

从文档:

The link to the server will be closed as soon as the execution of the

script ends, unless it's closed earlier by explicitly calling

mysql_close().

https://secure.php.net/function.mysql-connect

不需要在scipt的末尾放置骰子或出口。

但是您可以使用exit来使用特定的退出代码终止脚本(默认情况下为0)。

例如

$ php -r"/* does nothing */;"

$ echo $?

0

$ php -r"exit(123);"

$ echo $?

123

http://php.net/exit

有用的额外信息谢谢

不!

不建议使用它

使用trigger_error或error_log在error.log中记录测试。然后检查一下。

请解释为什么不推荐它,如果可能的话,请提供它的来源。

编辑我的回答

除非在特定情况下,否则不应在生产PHP脚本中使用die()或exit。相反,重新编写代码路径只是向用户显示错误消息,而不是提前退出脚本。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值