当前位置: 首页 > news >正文

php 配置 error_reporting,关于php中的错误配置display_errors与error_reporting说明

1、是否要显示错误:display_errors

如果要提示出错误,我们需要将display_errors设置成On,只有设置成On之后,错误才会提示出来。

有两种方式:

第一种,修改php.ini,直接设置display_errors=On;

第二种,在程序中使用ini_set('display_errors','On')进行设置;

2、需要报告哪些错误:error_reporting

error_reporting的作用是设置报错的错误等级,有些错误如果觉得没有必要报出来就可以通过这个设置成不报错。

同样也有两种设置方式:

第一种,修改php.ini,直接设置error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT;

第二种,在程序中使用error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT)进行设置;

常用的错误等级设置:error_reporting(0);                //禁用错误报告

error_reporting(E_ERROR | E_WARNING | E_PARSE);//报告运行时错误

error_reporting(E_ALL);            //报告所有错误

error_reporting(E_ALL ^ E_NOTICE); //除E_NOTICE报告所有错误,是在php.ini的默认设置

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

error_reporting(3);                //不报E_NOTICE

error_reporting(11);               //报告所有错误

ini_set('error_reporting', E_ALL); // 和 error_reporting(E_ALL); 一样

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);//表示php错误,警告,语法错误,提醒都返错。

那么,php具体有哪些错误等级呢?我们来看看:

值常量描述

1E_ERROR致命的运行错误。错误无法恢复,暂停执行脚本

2E_WARNING运行时警告(非致命性错误)。非致命的运行错误,脚本执行不会停止

4E_PARSE编译时解析错误。解析错误只由分析器产生

8E_NOTICE运行时提醒(这些经常是你代码中的bug引起的,也可能是有意的行为造成的。)

16E_CORE_ERRORPHP启动时初始化过程中的致命错误

32E_CORE_WARNINGPHP启动时初始化过程中的警告(非致命性错)

64E_COMPILE_ERROR编译时致命性错。这就像由Zend脚本引擎生成了一个E_ERROR

128E_COMPILE_WARNING编译时警告(非致命性错)。这就像由Zend脚本引擎生成了一个E_WARNING警告

256E_USER_ERROR用户自定义的错误消息。这就像由使用PHP函数trigger_error(程序员设置E_ERROR)

512E_USER_WARNING用户自定义的警告消息。这就像由使用PHP函数trigger_error(程序员设定的一个E_WARNING警告)

1024E_USER_NOTICE用户自定义的提醒消息。这就像一个由使用PHP函数trigger_error(程序员一个E_NOTICE集)

2048E_STRICT编码标准化警告。允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性

4096E_RECOVERABLE_ERROR开捕致命错误。这就像一个E_ERROR,但可以通过用户定义的处理捕获(又见set_error_handler())

8191E_ALL所有的错误和警告(不包括 E_STRICT) (E_STRICT will be part of E_ALL as of PHP 6.0)

3、如果不想在页面上报错,但又想把错误以日志的方式记录下来,怎么办?

这种情况,可以使用set_error_handler('errorHandler',E_ALL | E_STRICT)来自定义系统的错误处理函数,之后就可以在errorHandler这个自定义函数中自由发挥了。/**

* 错误处理

* @param int      $err_no      错误代码

* @param string $err_msg    错误信息

* @param string $err_file      错误文件

* @param int      $err_line     错误行号

* @return string

*/

function errorHandler($err_no = 0, $err_msg = '', $err_file = '', $err_line = 0)

{

writeLog($err_no.' '.$err_msg.' '.$err_file.''.$err_line."\r\n",'error.log');

}

注意:使用set_error_handler这个函数之后error_reporting设置的将全部失效,那么有什么办法可以解决这个问题呢。当然是有的,只需要在set_error_handler这个函数的第二个参数中去重新设置一遍就能搞定了。

相关文章:

  • php计算器源码,php 简单计算器
  • 学生考勤管理系统php,php158 学生考勤管理系统
  • linux php-mbstring下载,linux下php加载mbstring的方法 | 快享
  • php 與或非,js逻辑与,或,非
  • java邮件代码,java发送邮件(示例代码)
  • linux下mysql乱码,Linux下mysql中文乱码解决方案
  • matlab里怎么计算期望,§7.4.2 利用MATLAB计算随机变量的期望和方差.pdf
  • php静态页缓存,php处理静态页面:页面设置缓存时间图文详解
  • java 数据的储存,java数据储存方式详解
  • helpers.php,helpers.php
  • python下载package失败,pip安装packag失败
  • php ieee754,在 Go 中探索 IEEE-754 标准
  • oracle+数据结构+字典,ORACLE 数据字典
  • liunx php libiconv-1.14 扩展库地址,编译安装php之安装libiconv-1.14.tar.gz出错解决方法...
  • Oracle标量子查询执行计划,性能为王:SQL标量子查询的优化案例分析
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • Debian下无root权限使用Python访问Oracle
  • HTML-表单
  • JavaScript DOM 10 - 滚动
  • java概述
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • 爱情 北京女病人
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 时间复杂度与空间复杂度分析
  • 详解移动APP与web APP的区别
  • 消息队列系列二(IOT中消息队列的应用)
  • ‌移动管家手机智能控制汽车系统
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (自用)网络编程
  • .NET CORE Aws S3 使用
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .net开发时的诡异问题,button的onclick事件无效
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .NET轻量级ORM组件Dapper葵花宝典
  • .Net下的签名与混淆
  • .net专家(高海东的专栏)
  • @antv/x6 利用interacting方法来设置禁止结点移动的方法实现。
  • [AIGC] Spring Interceptor 拦截器详解
  • [BZOJ1089][SCOI2003]严格n元树(递推+高精度)
  • [C/C++]关于C++11中的std::move和std::forward
  • [C++进阶篇]STL中vector的使用
  • [C++数据结构](22)哈希表与unordered_set,unordered_map实现
  • [docker]docker网络-直接路由模式
  • [Docker]十一.Docker Swarm集群raft算法,Docker Swarm Web管理工具
  • [EFI]DELL XPS13 9360电脑 Hackintosh 黑苹果efi引导文件
  • [gdc19]《战神4》中的全局光照技术
  • [HNCTF 2022 WEEK2]easy_include 文件包含遇上nginx
  • [IE9] 解决了傲游、搜狗浏览器在IE9下网页截图的问题
  • [IE编程] 如何获得IE版本号
  • [LeetCode] 19. 删除链表的倒数第 N 个结点
  • [leetcode]beautiful-arrangement. 优美的排列
  • [MFC] MFC 获取指定窗口截图(大小可调)