Php “有什么办法吗?”;解析死亡错误“;?

Php “有什么办法吗?”;解析死亡错误“;?,php,exception-handling,error-handling,xdebug,parse-error,Php,Exception Handling,Error Handling,Xdebug,Parse Error,我敢肯定,我不是唯一一个注意到PHP上存在简单解析错误的人,如果存在于非常嵌套的场景中(例如,一个对象实例引用了另一个对象实例,该对象实例引用了另一个具有非常微小解析错误的对象实例,所有这些都是自动加载的)可以让PHP永远挂起,而不是像通常那样报告解析错误和停止执行-我已经在非常不同的代码库中看到过很多次了,总是设置了正确的错误报告设置 有什么办法吗?i、 例如,是否可以强制它以某种方式显示解析错误报告 作为记录,我100%确信这些挂起是由于PHP没有正确处理解析错误造成的,因为我已经多次调试了

我敢肯定,我不是唯一一个注意到PHP上存在简单解析错误的人,如果存在于非常嵌套的场景中(例如,一个对象实例引用了另一个对象实例,该对象实例引用了另一个具有非常微小解析错误的对象实例,所有这些都是自动加载的)可以让PHP永远挂起,而不是像通常那样报告解析错误和停止执行-我已经在非常不同的代码库中看到过很多次了,总是设置了正确的错误报告设置

有什么办法吗?i、 例如,是否可以强制它以某种方式显示解析错误报告


作为记录,我100%确信这些挂起是由于PHP没有正确处理解析错误造成的,因为我已经多次调试了这种行为;我问这个问题的原因是,当这些挂起发生时,一个人基本上被蒙在鼓里,甚至无法判断PHP的行为是否有趣,或者代码中的某个地方是否真的存在故障循环-这需要时间进行调试,如果你知道,PHP报告了应该报告的解析错误。

正如评论中部分提到的,
错误报告(E\u ALL)
可以帮助显示所有错误。您可能还必须使用
ini\u set
并使
display\u errors
的值为
on

就我个人而言,我认为你的问题不是很清楚,你应该改进格式,让它更容易理解

更新:您运行代码的服务器/计算机似乎非常慢。不应该真的发生“闲逛”。或者你能详细描述一下吗

此外,您可能会陷入无限或接近无限的循环中。仔细检查您的代码,因为除非您发布所有代码,否则这是我们可以帮助您的极限

更新2:当您试图调用某个对象时,似乎输入了该对象的名称。否则,可能是您没有正确声明对象

很可能是其中一个。

证明罪魁祸首是,文档非常正确地建议保持禁用状态。某些错误只是在调用堆栈跟踪的参数中生成了大量数据,这些参数耗尽了xdebug,collect_参数设置为4,并使xdebug和扩展PHP挂起,尽管我有一个定制的异常处理程序,它从未实际从xdebug检索堆栈跟踪,但显然xdebug还是收集了这些数据

这很难调试,因为:a)复制并不简单b)使用xdebug评测没有帮助c)使用xdebug+dbgp单步执行代码也没有帮助d)几乎没有跟踪(没有双关语)除了非常局部地使用自定义异常处理程序将错误记录到php错误日志文件中之外,我们不太可能怀疑xdebug,因为我没有将它包括在异常处理过程中,或者我是这么认为的


因此,死亡的解析错误是不存在的,我学会了永远不要认为这不是我的错:)希望这个答案至少能在将来帮助其他人。

我发现
错误报告(E\u ALL)显示了我所有的错误。你能设计一个场景用代码简洁地演示吗?错误甚至没有显示在服务器日志中?解析错误不会导致挂起。解析错误发生在任何代码执行之前,当它们发生时会导致引擎停止。@ChrisHenry我很确定我所看到的是真实的。我不认为它可以复制没有自动加载虽然。谢谢,但没有帮助。请参阅我在问题中的最后一条评论。谢谢,但我并不关心错误本身,我关心的是PHP没有在应该报告错误的时候报告错误。