[PHP] error_reporting(0)可以屏蔽Fatal error错误

前端之家收集整理的这篇文章主要介绍了[PHP] error_reporting(0)可以屏蔽Fatal error错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

按照以前的印象,error_reporting(0)屏蔽不了PHP的Fatal error级别的错误
但是今天我遇到了一个问题才发现,它竟然可以屏蔽任何错误包括Fatal error,浏览器会看不到500错误码,显示的是200,PHP-fpm下的PHP错误日志里没有任何输出Nginx下的错误日志里也没有任何输出

发现的过程是这样的,下载了一个开源代码,直接浏览器运行显示空白。看各种日志都没有错误信息,使用PHP-xdebug配合vscode,才看得到在首页获取session在连接数据库,我没有配置任何数据库,因此new PDO的时候连接不上,报的是Fatal error错误


经过下面这几句测试,可以看到确实屏蔽了Fatal error,语法错误屏蔽不了

<?PHP
error_reporting(0);
new aaa();
?>
<? PDO();
?>

 

我的测试环境为ubuntu,PHP版本是7.4,日志配置了下面这些,全都可以无视掉
/etc/PHP/7.4/fpm/pool.d/www.conf
PHP_flag[display_errors] = on
PHP_admin_value[error_log] = /var/log/PHP/www-error.log
PHP_admin_flag[log_errors] = on

/etc/PHP/7.4/fpm/PHP.ini
display_errors = On

猜你在找的PHP相关文章