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 和 2
function 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);
}
}