有没有办法在 php.ini 或 apache 级别指定脚本执行应该在任何警告时停止?我尝试通过 google 和 stackoverflow 进行搜索,但还没有找到任何相关信息。我知道 set_error_handler() 函数,但我希望在 php.ini 级别执行此操作。
最佳答案
2021 年 9 月编辑: OP 不希望像我建议的那样通过使用自定义错误函数来解决这个问题,但是这个问题为这个问题的人提供了相当多的流量,这些人对使用自定义错误函数非常满意。
可以使用自定义错误函数。
// Custom error function (even triggers for warnings)
set_error_handler(function($severity, $message, $file, $line) {
if (error_reporting() & $severity) {
throw new ErrorException($message, 0, $severity, $file, $line);
}
});
在我使用这段代码的项目中,我制作了这个小辅助函数来在项目的不同部分进行切换。可能的值为 0、1 和 2function updateErrorHandling($state) {
//custom error handler or standard
if ($state > 1) {
// Custom error function (even triggers for warnings)
set_error_handler(function($severity, $message, $file, $line) {
if (error_reporting() & $severity) {
throw new ErrorException($message, 0, $severity, $file, $line);
}
});
} else {
// Standard Exception Handling on / off
ini_set('display_errors', $state);
ini_set('display_startup_errors', $state);
error_reporting($state == 1 ? E_ALL : 0);
}
}
关于PHP 将警告设置为致命,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3234325/