3

所以当我在 php.ini 中设置这个指令时

error_reporting = E_ALL & ~E_DEPRECATED

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

Thu Sep 13 10:51:10 2012] [error] [client 173.59.22.4] PHP Deprecated: Assigning the return value of new by reference is deprecated in

等等等等等等

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

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

4

4 回答 4

2

这花了我很长时间来调试。旧版本的 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,但这与它无关!

于 2014-11-10T10:47:40.130 回答
1

error_reporting 可能在您的脚本中的某处被调用。

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

error_reporting(E_ALL & ~E_DEPRECATED);
于 2012-09-13T11:10:58.643 回答
1

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

if ($errno==8192) return 0;   // ignore Deprecated
于 2017-06-20T02:41:13.670 回答
0

几个地方可以更改此设置的值,包括非常常见的ini_set功能error_reporting。有人正在从其中一个人那里改变它。

于 2012-09-13T11:10:43.550 回答