本文共 485 字,大约阅读时间需要 1 分钟。
在开发过程中,遇到了一个关于PHP错误报告的有趣现象。按照常识,error_reporting(0)
只能屏蔽非严重的错误,比如 warnings 和 notices。但最新的实验表明,它甚至能够屏蔽 Fatal error 级别的错误,导致浏览器显示 200 而非 500 错误码,同时不影响其他类型的错误。
这间现象的发现源于一个开源项目在浏览器上的空白显示。尝试通过php-fpm和nginx日志查看,均无相关错误信息。于是,使用vscode和php-xdebug进行调试,最终发现代码中的PDO连接尝试失败,导致Fatal error。但由于Php的错误报告机制的巧妙设置,这些错误被成功屏蔽。
通过撰写和测试简短代码,我验证了error_reporting(0)
对Fatal error的屏蔽效果。配置文件显示,display_errors设置为"On",通常这会显示错误信息。但与预期不同,这些严重错误被成功抑制了。
这个发现提示,推荐对Php错误报告和异常处理有更深入的了解,以便合理使用error_reporting函数,确保在开发中及时处理各级别错误。
转载地址:http://nwimz.baihongyu.com/