gpt4 book ai didi

php - register_shutdown_function() - 什么是最佳实践?

转载 作者:可可西里 更新时间:2023-10-31 23:34:43 26 4
gpt4 key购买 nike

我目前出于多种目的使用 register_shutdown_function()。一种用途是处理 fatal error ,另一种用途是记录执行期间使用的资源,如时间、内存使用情况等。

目前我注册了两个不同的关闭函数,但在一个测试中只有第一个运行而另一个似乎失败了。现在这当然可以由函数本身的一些错误触发,所以我重写了它,但是是否有可能是使用多个 register_shutdown_function 调用引起的错误?那么这里的最佳实践是什么,是注册两个不同的函数,还是只调用一个处理不同任务的函数?

如果发生 fatal error ,让函数加载错误处理类是否也安全(并且可能),还是我应该将功能保留在函数本身中?

我得到的最后一个问题是,是否有比使用关闭函数更好的方法来处理 fatal error ?我试过使用 set_error_handler,但它没有涵盖所有错误类型,所以有些错误不会触发它。

希望这些问题的表述清晰明了。我的目标是使代码尽可能可靠,但我找不到任何合适的答案来回答我的问题。

*编辑:找到我第一个问题的答案,注册几个函数应该没问题,所以错误必须在函数本身内。留下问题以获得是否有更好的方法来处理 fatal error 的答案。

最佳答案

IIRC,如果你注册了多个关闭函数,它们将按照注册的顺序执行;并且你永远不应该有任何退出语句,否则后续的关闭函数将不会运行。这意味着如果您有多个函数而不是单个关闭函数,则需要格外小心。

但是,如果您将不同的参数传递给不同的函数,您应该确保它们都具有默认值,以防在设置所有适当的变量之前调用函数(可能由错误触发)。

就个人而言,出于与您相似的目的,我注册了多个功能;但我非常注意其中的逻辑和注册顺序。

在关闭函数中使用 include 或类似的东西也不是一个好主意(尤其是在一个是异常处理程序的地方),以防 include 本身触发异常

关于php - register_shutdown_function() - 什么是最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4657475/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com