php - @错误抑制运算符和set_error_handler

标签 php logging operator-keyword error-reporting

我遵循良好的编程习惯,并将 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_errorserror_log选项,用于自动将错误记录到文件或系统日志中。

关于php - @错误抑制运算符和set_error_handler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7380782/

相关文章:

javascript - OR javascript 的单选按钮问题

PHP cURL https 不适用于新的 VPS

php - 高效存储数据

php - php-我应该在最终用户网站上使用的错误报告级别是完整的

Python TimedRotatingFileHandler 旋转是如何发生的

C++编译错误;流运算符重载

php - 转义插入 MySQL 的原始 HTML 数据

c# - 使用 C Sharp 或 PHP 执行 Google 文本搜索?

mysql - 如何使用触发器来记录 MySQL 中数据库更改的历史记录?

c++ - 是否可以同时在两个对象上使用插入运算符?