在php中,我的error_reporting
设置为E_ALL
。
我想知道,如果遇到任何警告,或者遇到任何异常,是否有一种集中的方法可以使php停止执行。完全停止执行。我遇到过很多错误,变量中有拼写错误,脚本继续执行。
我在PHP中找到了严格模式?这提供了一个很好的代码解决方案,但我正在寻找某种可以让我完成同样任务的配置。一个存在吗?
但我正在努力避免为我的所有项目使用自定义错误处理程序?有人知道在php.ini中可以做到这一点吗?最好有一种配置php的方法,这样它就会显示警告或错误并停止。。
谢谢。
据我所知,除了创建一个立即停止执行的自定义错误处理程序之外,没有其他方法可以做到这一点。然而,只需要大约四行就可以做到这一点(或者使用SomeKittens发布的答案/评论)。
很抱歉,您的问题的答案是"否"。
使用set_error_handler在错误处理程序中引发异常。
取消捕获异常将停止执行。
自定义错误处理程序是我所知道的最简单的方法。它们并不复杂——你可以简单地编写一个函数,立即终止脚本,并指示PHP使用它来处理错误——一个(简单的)例子:
function my_error_handler($num,$msg) {
die();
}
set_error_handler("my_error_handler");
您的应用程序应尽快注册自己的错误处理程序。如果出现任何警告或错误,请在那里中止。请注意,语法错误不会以这种方式被捕获。看见http://php.net/manual/en/function.set-error-handler.php
在PHP 5.5 zts/non-zts中,模块Suhosin具有此默认行为*,E_WARNING为eval&func黑名单参数。
*在第一个警告时停止脚本。