使用@(错误控制运算符)时跳过报告错误

时间:2014-03-21 01:47:52

标签: php error-handling

我的代码是:

function errors($number,$string,$file,$line)
{
    $error = $string.' In '.$file.', on line '.$line."\n";
    error_log($error);
}
set_error_handler('errors',E_ALL);

下一行停止显示错误,因为我正在使用@运算符。但是,我的问题是set_error_handlererror.log文件中写入错误。

echo @$undefined_variable; // I don't want to write this error in error.log file

1 个答案:

答案 0 :(得分:1)

虽然更好的解决方案是修复未定义的变量问题,但您可以按照以下要求执行以下操作:

ini_set('log_errors', false);
echo $undefined_variable;
ini_set('log_errors', true);

同样,我强烈建议您解决问题(在使用之前定义变量或使用isset检查它),而不是屏蔽错误。