登录  /  注册

如何进行php.ini报错设置

藏色散人
发布: 2021-03-05 17:58:18
原创
2997人浏览过

php.ini报错设置的方法:首先找到并打开php.ini配置文件;然后设置内容为“error_reporting=e_all display_errors=on”即可。

如何进行php.ini报错设置

本文操作环境:windows7系统、PHP7.1版,DELL G3电脑

PHP 开启错误显示并设置错误报告级别

警告:生产环境永远都不要显示任何错误信息!

显示错误(display_errors)和错误报告(error_reporting)是两回事。PHP 脚本发生错误时,可以根据设置选择是否报告这个错误(记录到错误日志中),如果设置中开启了 display_errors,则同时把错误信息打印到屏幕上。

项目中常用的设置

switch (ENVIRONMENT)
{
    // 对于开发环境,报告所有错误,同时显示到屏幕上
    case 'development':
        error_reporting(-1);
        ini_set('display_errors', 1);
    break;

    // 对于测试和生产环境,不显示错误,5.3 以上的版本,不报告通知、废弃方法、严格这几类错误
    case 'testing':
    case 'production':
        ini_set('display_errors', 0);
        if (version_compare(PHP_VERSION, '5.3', '>='))
        {
            error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED);
        }
        else
        {
            error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE);
        }
    break;

    default:
        header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
        echo 'The application environment is not set correctly.';
        exit(1); // EXIT_ERROR
}
登录后复制

PHP 预定义的错误常量

官网定义了所有的 错误常量,常用的有:

  • E_STRICT (integer) PHP 对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性。
  • E_ALL (integer) E_STRICT外的所有错误和警告信息。
  • E_ERROR (integer) 致命的运行时错误。这类错误一般是不可恢复的情况,例如内存分配导致的问题。后果是导致脚本终止不再继续运行。
  • E_WARNING (integer) 运行时警告 (非致命错误)。仅给出提示信息,但是脚本不会终止运行。
  • E_PARSE (integer) 编译时语法解析错误。解析错误仅仅由分析器产生。
  • E_NOTICE (integer) 运行时通知。表示脚本遇到可能会表现为错误的情况,但是在可以正常运行的脚本里面也可能会有类似的通知。

在代码中开启并设置显示级别

ini_set() 函数

对于 PHP,可以通过 php.ini 文件设置各种指令。但有时候需要在脚本运行时设置指令,那就需要 ini_set() 函数了。

string ini_set ( string $varname , string $newvalue )
登录后复制

设置指定配置选项的值。这个选项会在脚本运行时保持新的值,并在脚本结束时恢复。

例如:

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 'on');
登录后复制

error_reporting() 函数

error_reporting() 函数能够在运行时设置 error_reporting 指令。 PHP 有诸多错误级别,使用该函数可以设置在脚本运行时的级别。如果没有设置可选参数, error_reporting() 会返回当前的错误报告级别。

PHP7.2 的默认值为 E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

在开发阶段建议启用 E_NOTICE 显示更多可能的错误。

<?php

// 关闭所有PHP错误报告,相当于 ini_set(&#39;error_reporting&#39;, 0);
error_reporting(0);

error_reporting(E_ERROR | E_WARNING | E_PARSE);

// 报告 E_NOTICE  (报告未初始化的变量或捕获变量名的错误拼写)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// 除了 E_NOTICE,报告其他所有错误
error_reporting(E_ALL ^ E_NOTICE);

// 报告所有 PHP 错误 (参见 changelog)
error_reporting(E_ALL);

// 报告所有 PHP 错误
error_reporting(-1);

// 和 error_reporting(E_ALL); 一样
ini_set(&#39;error_reporting&#39;, E_ALL);
登录后复制

修改 php.ini 配置文件

error_reporting = E_ALL # 报告所有错误
display_errors = On # 显示错误
登录后复制

【推荐学习:《PHP视频教程》】

以上就是如何进行php.ini报错设置的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号