PHP错误抑制被忽略

时间:2013-03-04 13:54:07

标签: php error-reporting error-suppression

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

error_reporting = E_ALL & ~E_STRICT & ~E_DEPRECATED

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

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

SCREAM: Error suppression ignored for

有谁能让我深入了解为什么忽略错误抑制以及如何正确地抑制错误?

提前致谢。

1 个答案:

答案 0 :(得分:7)

您似乎正在使用尖叫扩展。从手册:

  

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

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

scream.enabled = off

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