这取决于您要报告哪些错误(如果有)。如果您不希望报告任何错误(我认为这是个坏主意),请使用:
error_reporting(0);
在脚本的顶部。
如果您只想关闭已弃用的错误,则需要使用predefined error constants 使用一些bitwise operators。我相信以下内容会起作用并符合您的想法:
error_reporting(E_ALL ^ (E_DEPRECATED & E_STRICT & E_NOTICE))
这仍然会留下致命错误和可捕获错误(这 3 个错误中的 2 个将停止脚本,因此它们很容易捕获),但会忽略“您的脚本已旧”类型错误。
也可以将不太需要的错误发送到另一个错误日志,以便以后处理它们,但不会阻塞主要错误日志。有兴趣可以询问。
快速编辑:
因为E_STRICT 不包含在E_ALL 中,所以上面会打开 E_STRICT(只有当我们假设 ALL 意味着,好吧,所有这些(所有位都翻转)。因此这将产生关闭这三个错误的预期结果:
error_reporting(E_ALL ^ (E_DEPRECATED & E_NOTICE))
或者,要吃掉我对zuul回答的评论的话,这也可以(尽管逻辑让我头疼):
error_reporting(E_ALL & ~(E_DEPRECATED | E_STRICT | E_NOTICE))
另外,由于您特别提到了 Apache,您应该知道您不能在 PHP 脚本之外使用预定义的错误常量,您必须使用实际的位掩码值。在这种情况下,您可以将以下内容添加到 config 或 htaccess 文件中:
php_value error_reporting 22519
我在文档中没有找到在这种情况下支持按位运算的任何地方,所以如果您想调整 error_reporting 级别,您可以简单地创建一个包含以下内容的 php 脚本:
echo E_ALL & ~(E_DEPRECATED | E_STRICT | E_NOTICE);
这将输出该位掩码的十进制形式以供使用(显然更改常量以匹配您要关闭的内容)。