• 技术文章 >后端开发 >PHP问题

    PHP中的错误有哪些?又该如何处理?

    VV2019-08-29 15:00:11转载685
    一、错误的级别

    1.notice 提示
    2.warning 警告
    3.error 致命错误

    notice和warning报错后继续执行,
    error报错后停止执行

    二、错误的提示方法

    方法一:显示在浏览器上

    方法二:记录在日志中

    三、与错误有关的配置

    在php.ini中

    1. error_reporting = E_ALL:报告所有的错误
    2. display_errors = On:将错误显示在浏览器上
    3. log_errors = On:将错误记录在日志中
    4. error_log=’地址’:错误日志保存的地址

    在项目开发过程中有两个模式,开发模式,运行模式

    开发模式:错误显示在浏览器上,不要记录在日志中
    运行模式:错误不显示在浏览器上,记录是日志中

    <?php
    $debug=false;        //true:开发模式  false:运行模式
    ini_set('error_reporting',E_ALL);    //所有的错误有报告
    if($debug){
        ini_set('display_errors','on');    //错误显示是浏览器上
        ini_set('log_errors','off');    //错误不显示在日志中
    }else{
        ini_set('display_errors','off');
        ini_set('log_errors','on');
        ini_set('error_log','./err.log');    //错误日志保存的地址
    }
    
    //测试
    echo $num;

    四、自定义错误

    通过trigger_error产生一个用户级别的 error/warning/notice 信息

    /**
    *自定义错误处理函数
    *@param $errno int 错误类别
    *@param $errstr string 错误信息
    *@param $errfile string 文件地址
    *@param $errline int 错误行号
    */
    function error($errno,$errstr,$errfile,$errline) {
        switch($errno){
            case E_NOTICE:
            case E_USER_NOTICE:
                echo '记录在日志中,上班后在处理<br>';
                break;
            case E_WARNING:
            case E_USER_WARNING:    
                echo '给管理员发邮件<br>';
                break;
            case E_ERROR:
            case E_USER_ERROR:
                echo '给管理员打电话<br>';
                break;
        }
        echo "错误信息:{$errstr}<br>";
        echo "错误文件:{$errfile}<br>";
        echo "错误行号:{$errline}<br>";
    }
    set_error_handler('error');
    echo $num;
    
    //运行结果
    记录在日志中,上班后在处理
    错误信息:Undefined variable: num
    错误文件:F:\wamp\www\4-demo.php
    错误行号:50

    想了解更多PHP相关内容,请访问PHP中文网:PHP视频教程

    以上就是PHP中的错误有哪些?又该如何处理?的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:博客园,如有侵犯,请联系admin@php.cn删除
    专题推荐:错误
    上一篇:php字体颜色怎么设置 下一篇:php字符串怎么转成整数
    大前端线上培训班

    相关文章推荐

    • thinkphp5出现500错误怎么办• thinkphp5如何开启错误调试• navicat怎么建立连接10038错误• Mysql中常见的8种SQL错误用法

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网