php register_shutdown_function什么条件下生效?

以thinkphp为例,
clipboard.png
代码放在28行之前,生效,效果如图:

clipboard.png
可以拿到错误信息,但是依然报fatal error??

当把代码放在28行一下,

clipboard.png
报错,而且拿不到错误信息??

此外,_shutdown_handler方法放在除了index.php以外的common/function.php下,依然拿不到错误信息??

如果把register_shutdown_function和_shutdown_handler放在其他controller,依然不能生效??
图片描述

阅读 3.4k
1 个回答
新手上路,请多包涵

首先理解一下register_shutdown_function的定义:当一个PHP脚本被调用时,如果脚本执行完成或意外死掉导致PHP执行即将关闭时,PHP会主动调用通过register_shutdown_function注册的方法。
在TP中,引入了ThinkPHP.php文件后,框架就开始自动按访问的路径调用相应的控制器,等于你的应用代码在引入这个文件一行里面,全部被执行了,如果这中间出错,在引入thinkphp.php之后注册register_shutdown_function,就没有任何意义了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题