PHP错误抑制被忽略

Wil*_*art 4 php error-suppression error-reporting

我当前的php.ini文件设置为报告除弃用和严格标准以外的所有错误,如下所示:

error_reporting = E_ALL & ~E_STRICT & ~E_DEPRECATED
Run Code Online (Sandbox Code Playgroud)

使用此设置的原因是我们迫切需要在托管我们网站的Linux服务器上执行PHP升级; 问题是,已弃用的功能和严格的标准建议将很快填满170多个网站的错误日志文件.这些错误主要是由于函数没有声明为静态等等.最终我们将通过所有站点并修复这些问题,但与此同时我们需要抑制错误.

我在本地测试环境中遇到的问题(运行我们希望升级到的PHP版本 - 5.4.3)是错误仍然显示以下打印之前:

SCREAM: Error suppression ignored for
Run Code Online (Sandbox Code Playgroud)

任何人都可以让我深入了解为什么忽略错误抑制以及如何正确地抑制错误?

提前致谢.

hek*_*mgl 7

看来你正在使用尖叫扩展.从手册:

尖叫扩展可以禁用静默错误控制操作符,以便报告所有错误.此功能由ini设置控制.

Scream是调试的扩展,旨在显示尽可能多的错误消息.这是通过忽略@运算符并始终具有最高的error_reporating级别来完成的.(不管你的error_reporting设置如何).所以你必须在你的php.ini中停用扩展名:

scream.enabled = off
Run Code Online (Sandbox Code Playgroud)

顺便说一句:我不会更新有170个代码错误的网站的服务器.现在这是一颗定时炸弹.最好将它们逐站点迁移到新的PHP版本.在迁移过程中可能有两台服务器并行.