error_reporting(0) 隐藏常规输出?奇怪的行为
Posted
技术标签:
【中文标题】error_reporting(0) 隐藏常规输出?奇怪的行为【英文标题】:error_reporting(0) hides regular output? Strange behavior 【发布时间】:2014-05-05 06:33:51 【问题描述】:一位客户正在运行一个 Magento 网店,但 error_reporting
函数与 magento 结合使用时出现了一个非常奇怪的行为。
据我所知,它隐藏了显示错误/警告/通知消息,并且不影响脚本的常规输出(例如,使用“echo”)。
我有一个简短的示例脚本,其中包含两个echo
-调用。在依赖关系中,如果 error_reporting() 开启或关闭,则在浏览器中可以看到一两行输出。我已经预料到了,这个函数不会影响常规输出?
echo
-calls:在第 9 行和第 31 行。
使用error_handling(0),只有第一个echo
-call 发送输出,第二个回显的输出将被忽略。
在我看来,这并不是error_reporting()
函数的异常行为。我试图改变 CHMOD (644,666,755,777),但没有改变。 display_errors
也不会改变输出。
这里有两张截图(看浏览器地址行和脚本第6行或第7行的GET-Parameter:
【问题讨论】:
请将代码作为代码而不是图像。 检查您的错误日志。 当您将E_ALL
与0
切换,以及将0
与E_ALL
切换时会发生什么情况...是相反的吗?
@Arian:这取决于是否使用 GET 参数。使用 GET 参数它需要 E_ALL
,没有 GET 参数它需要 0
。这就是谷歌浏览器有两张截图的原因。或者你的问题没有得到正确的答案?但是,是的,它是相反的。刚试过:-)
【参考方案1】:
做:
error_reporting(-1);
看看这是否会引发您遗漏的任何错误。
更新 1:
grep 或在文件夹中找到代码库中的所有 error_reporting 和 display_errors 并将它们删除。让您的代码成为唯一进行错误设置的地方。可能是 Magneto 正在做的事情改变了这一点。【讨论】:
error_reporting(-1) 的行为与 error_reporting(E_ALL) 相同,这意味着:输出的两行 ...以上是关于error_reporting(0) 隐藏常规输出?奇怪的行为的主要内容,如果未能解决你的问题,请参考以下文章
[PHP] error_reporting可以屏蔽Fatal error错误