以thinkphp为例,
代码放在28行之前,生效,效果如图:
可以拿到错误信息,但是依然报fatal error??
当把代码放在28行一下,
报错,而且拿不到错误信息??
此外,_shutdown_handler方法放在除了index.php以外的common/function.php下,依然拿不到错误信息??
如果把register_shutdown_function和_shutdown_handler放在其他controller,依然不能生效??
以thinkphp为例,
代码放在28行之前,生效,效果如图:
可以拿到错误信息,但是依然报fatal error??
当把代码放在28行一下,
报错,而且拿不到错误信息??
此外,_shutdown_handler方法放在除了index.php以外的common/function.php下,依然拿不到错误信息??
如果把register_shutdown_function和_shutdown_handler放在其他controller,依然不能生效??
2 回答1.6k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
2 回答1.1k 阅读
1 回答946 阅读
1 回答899 阅读
1 回答897 阅读
首先理解一下register_shutdown_function的定义:当一个PHP脚本被调用时,如果脚本执行完成或意外死掉导致PHP执行即将关闭时,PHP会主动调用通过register_shutdown_function注册的方法。
在TP中,引入了ThinkPHP.php文件后,框架就开始自动按访问的路径调用相应的控制器,等于你的应用代码在引入这个文件一行里面,全部被执行了,如果这中间出错,在引入thinkphp.php之后注册register_shutdown_function,就没有任何意义了。