什么可能导致php.ini忽略error_reporting指令?

时间:2012-09-13 11:08:46

标签: php error-reporting

所以当我在php.ini

中设置此指令时
  

error_reporting = E_ALL& 〜E_DEPRECATED

即使在apache重新加载或重启后,我仍然会收到这些错误。

  

Thu Sep 13 10:51:10 2012] [错误] [client 173.59.22.4] PHP已弃用:不推荐在

中指定新引用的返回值
等等等。

有什么想法吗?我不确定为什么php.ini不会听这个指令不列出弃用。

PHP 5.3.3(cli)(建于:2012年7月3日16:53:21) 版权所有(c)1997-2010 PHP小组 Zend Engine v2.3.0,版权所有(c)1998-2010 Zend Technologies

4 个答案:

答案 0 :(得分:0)

several places可以更改此设置的值,包括常见的ini_seterror_reporting函数。有人正在改变其中一个。

答案 1 :(得分:0)

error_reporting可以在你的脚本中的某处调用。

您可以在错误发生之前使用它来重置它:

error_reporting(E_ALL & ~E_DEPRECATED);

答案 2 :(得分:0)

我花了很多时间来调试。由旧版本的phprunner生成的代码由于"已弃用的函数mysql_connect而崩溃。但无论我使用error_reporting做什么

error_reporting(E_ALL & ~E_DEPRECATED); // was being ignored

这是因为代码使用了自己的错误处理函数"错误处理程序"

set_error_handler("my_error_handler"); // override error_reporting()

我所要做的就是添加以下行来运行my_error_handler()

if ($errno==8192) return 0;   // ignore Deprecated

我浪费了很多时间摆弄我的php.ini,但它与它没有任何关系!

答案 3 :(得分:0)

我的解决方案与zzapper相同 - phprunner的文件名是phpfunctions.php,这有效:

if ($errno==8192) return 0;   // ignore Deprecated