• [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();
    ?>
    <?php
    error_reporting(0);
    new 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

  • 相关阅读:
    记忆的永恒
    放弃我是你的错
    献给我逝去的长辈们清明
    思维的局限,穷人为什么会穷?
    借我一生
    陪你到老
    风雨路途
    人生的十二大财富
    怀才不遇
    javascript变量
  • 原文地址:https://www.cnblogs.com/taoshihan/p/11825012.html
Copyright © 2020-2023  润新知