【发布时间】:2012-12-17 09:41:21
【问题描述】:
在php.ini中,我的错误显示设置如下:
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
display_errors = Off
这适用于任何通常调用的文件,但是,如果使用 jQuery/AJAX 调用文件,我会收到如下错误:
严格标准:不应静态调用非静态方法 XML_Util::replaceEntities(),假设 $this 来自第 664 行 /usr/lib/php/XML/Util.php 中的不兼容上下文
严格标准:不应静态调用非静态方法 XML_Util::createTagFromArray(),假设 $this 来自第 1231 行 /home/site/public_html/site/paypal/lib/Serializer/Serializer.php 中的不兼容上下文
严格标准:不应静态调用非静态方法 XML_Util::attributesToString(),假设 $this 来自第 652 行 /usr/lib/php/XML/Util.php 中的不兼容上下文
可以假设,这破坏了我网站的某些部分,我该如何解决这个问题?
我正在运行 PHP 5.4.10
正在使用 Jquery 函数调用文件:$.get 或 $.post
【问题讨论】:
-
display_errors = Off是从哪里设置的?如果它不在ini中,它应该在所有相关入口点(或在前端控制器中) -
你在正确的 php.ini 中设置了吗?检查
phpinfo()或php -i的输出以查看哪个 php.ini 被调用。 -
不相关但你为什么要禁用
E_NOTICE?如果你收到通知,这通常意味着你的代码很糟糕,应该修复...... -
@ThiefMaster 这是针对生产站点的,错误是针对开发/测试站点的。
-
即使在生产环境中,您也应该启用 E_NOTICE - 只需使用 display_errors=off 并将错误发送到 syslog。
标签: error-handling php error-reporting