@不';不能抑制php中的错误

@不';不能抑制php中的错误,php,error-handling,Php,Error Handling,我的php错误日志代码中有几个错误,它们应该使用@operator来抑制错误。例如: @unlink($path.'_expire'); t在错误日志中显示错误,没有名为“\u expire”的文件或目录 这段代码在第三方库中,我不想修改它,我只需要php来抑制错误,正如我所想的那样 我的错误报告设置为 error_reporting = E_ALL & ~E_DEPRECATED 有办法做到这一点吗 原来我使用的是一个单独的错误处理程序。我在错误处理程序中添加了以下检查: if (

我的php错误日志代码中有几个错误,它们应该使用@operator来抑制错误。例如:

@unlink($path.'_expire');
t在错误日志中显示错误,没有名为“\u expire”的文件或目录

这段代码在第三方库中,我不想修改它,我只需要php来抑制错误,正如我所想的那样

我的错误报告设置为

error_reporting = E_ALL & ~E_DEPRECATED

有办法做到这一点吗

原来我使用的是一个单独的错误处理程序。我在错误处理程序中添加了以下检查:

if (!(error_reporting() & $errno)) {
    // This error code is not included in error_reporting
    return;
}
现在它正确地跳过了被抑制的错误


来源:

错误抑制是使错误不会破坏代码。但E_ALL正在报告日志文件中的所有错误。如果要消除日志文件错误,请使用error_reporting=0,尽管最好修复它。我明白了,所以如果不禁用错误报告,就无法抑制错误?我必须修改第三方代码?
@
通常应该禁止这些代码,除非(1)您启用了类似xdebug的尖叫或(2)您有一个自定义错误处理程序,该处理程序不会检查该函数中返回的
错误报告()
是什么(它将始终被调用,但错误报告()将在该回调中临时设置为
0
)。@ContextSwitch:如果“修改”的意思是“修复”,则为“是”。