在this question中,OP提到PHP在error_reporting
关闭时自动抛出500错误,并且XDebug改变了这种行为。
这让我很好奇,因为我以前从未听说过PHP会自动发出500秒。根据SO和其他地方的各种引用和答案,如果将500 Internal Server Error
设置为false,那么抛出display_errors
标头似乎确实是PHP的默认行为。
但是,我无法找到任何官方信息。 display_errors和error_reporting上的手册页没有任何内容。
有没有人知道PHP文档中讨论这个问题的好消息来源?
答案 0 :(得分:10)
不确定,但这可能是added in PHP 5.2.4:
- 更改错误处理程序以在PHP错误上发送HTTP 500而不是空白页。 (德米特里,安德烈·尼格马林)
还有关于可能与之相关的internals list的讨论:
引用:
当前大多数PHP instalations使用设置'display_error = 0'。 此设置会隐藏用户的错误,但可能只会向他发送一个空白页。
建议的补丁发送HTTP 500响应错误而不是空白页。 已经写过的页面没有受到影响。
有任何异议或补充吗?
并且建议的解决方案/补丁似乎在这里显示: