我遵循良好的编程习惯,并将 PHP 错误记录到文件中,而不是将其显示给用户。为此,我使用 set_error_handler()
。
现在是问题。例如,我有一个地方:
@file_exists('/some/file/that/is/outside/openbasedir.txt');
但是尽管有错误抑制运算符,错误消息还是会记录下来。我不想要那个。我希望抑制的错误不会传递给我的错误处理程序。
最佳答案
@
运算符临时将 error_reporting 设置为 0,因此您可以在错误处理程序中测试 error_reporting 的值:
if (ini_get('error_reporting') == 0) {
return;
}
或者更好的是,只记录 error_reporting 中的错误类型:
$error_reporting = ini_get('error_reporting');
if ( !($error_reporting & $errno) ) {
return;
}
另请查看 log_errors
和 error_log
选项,用于自动将错误记录到文件或系统日志中。
关于php - @错误抑制运算符和set_error_handler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7380782/