【发布时间】:2012-08-21 01:43:39
【问题描述】:
我很确定我不仅仅是一个注意到 PHP 上的简单解析错误的人,如果存在于非常嵌套的场景中(例如,一个引用另一个对象实例的对象实例,该对象实例引用另一个具有非常微小的解析错误,所有这些都是自动加载的)可以使 PHP 永远挂起,而不是像通常那样报告解析错误并停止执行——我已经看到很多次了,而且在非常不同的代码库中,总是使用正确的error_reporting 设置集。
有什么办法解决吗?即,是否可以强制以某种方式显示解析错误报告?
作为记录,我 100% 确定这些挂起是由于 PHP 没有正确处理解析错误造成的,因为我已经多次调试过这种行为;我问的原因是因为当这些挂起发生时,基本上是一无所知,甚至无法判断 PHP 是否表现得好笑,或者代码中的某个地方确实存在故障循环——这需要时间来调试,时间可能如果您知道,PHP 报告了应有的解析错误,则可以保存。
【问题讨论】:
-
我发现
error_reporting(E_ALL);显示了我所有的错误。 -
你能设计一个场景来简洁地在代码中演示这一点吗?
-
错误甚至没有出现在服务器日志中?
-
解析错误不会导致挂起。解析错误发生在任何代码执行之前,发生时会导致引擎停止。
-
@ChrisHenry 我很确定我所看到的是真实的。我不认为它可以在没有自动加载的情况下被复制。
标签: php exception-handling error-handling xdebug parse-error