PHP的error_reporting错误级别变量对照表

在PHP中所有的报错信息可以用error_reporting()这个函数来设置:

它的参数有字符串和数字两种表示方法,共14个等级,但是呢,我看使用其他数字貌似也可以,起初我以为它指的是一定的报错区间,后来,终于发现了其中的规律:

代码如下:

error_reporting( 7 ) = error_reporting( 1+2+4)= error_reporting(E_ERROR | E_WARING | E_PARSE)

现在,我将其总结如下:

数字 常量 说明
1 E_ERROR 致命错误,脚本执行中断,就是脚本中有不可识别的东西出现
举例: Error:Invalid parameters. Invalid parameter name
2 E_WARNING 部分代码出错,但不影响整体运行
举例: Warning: require_once(E:/include/config_base.php)
4 E_PARSE  字符、变量或结束的地方写规范有误
举例:  Parse error: syntax error, unexpected $end in
 E_NOTICE 一般通知,如变量未定义等
举例:  Notice: Undefined variable: p in E:\web\index.php on line 17
16  E_CORE_ERROR PHP进程在启动时,发生了致命性错误
举例:  暂无
32  E_CORE_WARNING 在PHP启动时警告(非致命性错误)
举例:  暂无
64 E_COMPILE_ERROR 编译时致命性错误
举例:  暂无
128 E_COMPILE_WARNING 编译时警告级错误
举例:  暂无
256 E_USER_ERROR  用户自定义的错误消息
举例:  暂无
512 E_USER_WARNING 用户自定义的警告消息
举例:  暂无
1024 E_USER_NOTICE  用户自定义的提醒消息
举例:  暂无
2047 E_ALL 以上所有的报错信息,但不包括E_STRICT的报错信息
举例:  暂无
2048 E_STRICT 编码标准化警告,允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。

error_reporting 变量的默认值是  E_ALL & ~E_NOTICE
开发时,最佳的值为: E_ALL | E_STRICT

如果设置为:error_reporting(E_ALL | E_STRICT),则表示记录所有的错误信息
可能会导致网站出现一大堆的错误代码;但是对于程序员来说应该说是一件好事,可以把代码优化到最优; 一些非致命性错误虽然不影响程序的运行,但是会加重PHP的负担.

最后,晒出英文版的对照表:

1 E_ERROR Fatal run-time errors. Errors that can not be recovered from. Execution of the script is halted
2 E_WARNING Non-fatal run-time errors. Execution of the script is not halted
4 E_PARSE Compile-time parse errors. Parse errors should only be generated by the parser
8 E_NOTICE Run-time notices. The script found something that might be an error, but could also happen when running a script normally
16 E_CORE_ERROR Fatal errors at PHP startup. This is like an E_ERROR in the PHP core
32 E_CORE_WARNING Non-fatal errors at PHP startup. This is like an E_WARNING in the PHP core
64 E_COMPILE_ERROR Fatal compile-time errors. This is like an E_ERROR generated by the Zend Scripting Engine
128 E_COMPILE_WARNING Non-fatal compile-time errors. This is like an E_WARNING generated by the Zend Scripting Engine
256 E_USER_ERROR Fatal user-generated error. This is like an E_ERROR set by the programmer using the PHP function trigger_error()
512 E_USER_WARNING Non-fatal user-generated warning. This is like an E_WARNING set by the programmer using the PHP function trigger_error()
1024 E_USER_NOTICE User-generated notice. This is like an E_NOTICE set by the programmer using the PHP function trigger_error()
2048 E_STRICT Run-time notices. PHP suggest changes to your code to help interoperability and compatibility of the code
4096 E_RECOVERABLE_ERROR Catchable fatal error. This is like an E_ERROR but can be caught by a user defined handle (see also set_error_handler())
8191 E_ALL All errors and warnings, except level E_STRICT (E_STRICT will be part of E_ALL as of PHP 6.0)
(0)

相关推荐

  • PHP中error_reporting函数用法详细介绍

    PHP中error_reporting函数用法详细介绍 PHP中对错误的处理会用到error_reporting函数,看到最多的是error_reporting(E_ALL ^ E_NOTICE),这个是什么意思呢?下面我们具体分析error_reporting函数. 定义用法 error_reporting() 设置 PHP 的报错级别并返回当前级别. 语法 error_reporting(report_level) 如果参数 report_level 未指定,当前报错级别将被返回.下面几项是

  • PHP中error_reporting()函数的用法(修改PHP屏蔽错误)

    今天学习CI框架过程中遇到个问题: A PHP Error was encountered Severity: Notice Message: Undefined variable: user 一般在默认的普通PHP文件中输出一个未定义声明的变量是不会报错误的,但在codeigniter框架下却要报错误,这对于想集成 添加 和 修改 页面于一体的"懒人"很不方便,由于是初学者开始还想怎么在代码中屏蔽这一错误提示呢.甚至用到了@,但听很多人都说@会大大降低性能-. 最后突然想到,是不是c

  • PHP中error_reporting()用法详解

    error_reporting() 函数规定报告哪个错误 .该函数设置当前脚本的错误报告级别.该函数返回旧的错误报告级别. 首先要知道error_reporting()函数是用来设置错误级别并返回当前级别的.它有14个错误级别,如下: 1 E_ERROR 致命的运行时错误. 错误无法恢复过来.脚本的执行被暂停 2 E_WARNING 非致命的运行时错误. 脚本的执行不会停止 4 E_PARSE 编译时解析错误.解析错误应该只由分析器生成 8 E_NOTICE 运行时间的通知. 16 E_CORE

  • PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明

    举例说明: 在Windows环境下:原本在php4.3.0中运行正常的程序,在4.3.1中为何多处报错,大体提示为:Notice:Undefined varialbe:变量名称. 例如有如下的代码: 复制代码 代码如下: if (!$tmp_i) { $tmp_i=10; } 在4.3.0中运行正常,在4.3.1中运行会提示Notice:Undefined varialbe:tmp_i 问题下下: 1.问题出在哪里? 2.应如何修改这段代码? 3.不改段代码,如何修改php.ini中的设置使原来

  • PHP的error_reporting错误级别变量对照表

    在PHP中所有的报错信息可以用error_reporting()这个函数来设置: 它的参数有字符串和数字两种表示方法,共14个等级,但是呢,我看使用其他数字貌似也可以,起初我以为它指的是一定的报错区间,后来,终于发现了其中的规律: 复制代码 代码如下: error_reporting( 7 ) = error_reporting( 1+2+4)= error_reporting(E_ERROR | E_WARING | E_PARSE) 现在,我将其总结如下: 数字 常量 说明 1 E_ERRO

  • php错误级别的设置方法

    PHP在运行时, 针对严重程度不同的错误,会给以不同的提示. eg:在$a没声明时,直接相加,值为NULL,相加时当成0来算.但是,却提示NOTICE,即注意. 我们在开发中, 为了程序的规范性,把报错级别,调的比较高NOTICE级别的也报出来,有助于我们快速定位错误和代码规范,但是,在产品上线后,网站运营过程中,就不宜报这么多错. 1:这种错误给客户的印象不好 2:在报错时,把网站的绝对路径,如D:\www\1015都报出来了.增大被攻击的风险 因此,在网站上线后,就应该让报错级降低,少报错甚

  • PHP中最低级别的错误类型总结

    序言:php错误就是会使脚本运行不正常的情况. php的错误有很多种,包括warning.notice.deprecated.fetal error等.其中notice不叫通知,而叫通知级别的错误,warning也不叫警告,而叫警告级别的错误. 错误大致分为下面几个类型 deprecated是最低级别的错误,表示“不推荐,不建议”.比如PHP5中使用的ereg系列的正则匹配函数就会报此类错误.这种错误一般由于使用不推荐的.过时的函数或语法造成的.其虽不影响PHP正常流程,但一般情况下建议修正.

  • 浅谈Python程序的错误:变量未定义

    Python程序的错误种类 Python程序的错误分两种.一种是语法错误(syntax error).这种错误是语句的书写不符合Python语言的语法规定.第二种是逻辑错误(logic error).这种错误是指程序能运行,但功能不符合期望,比如"算错了"的情形. 变量未定义的错误 Python程序中,变量需要先定义后使用.如果没有这样做,就会出现变量未定义错误.这属于语法错误.Pycharm中,语法错误会用红色的波浪线标出来,如图1所示. 图1 Pycharm中,语法错误会用红色的波

  • PHP错误机制知识汇总

    PHP的错误机制也是非常复杂的,做了几年php,也没有仔细总结过,现在就补上这一课. 特别说明:文章的PHP版本使用5.5.32 PHP的错误级别 首先需要了解php有哪些错误.截至到php5.5,一共有16个错误级别 注意:尝试下面的代码的时候请确保打开error_log: error_reporting(E_ALL); ini_set('display_errors', 'On'); E_ERROR 这种错误是致命错误,会在页面显示Fatal Error, 当出现这种错误的时候,程序就无法继

  • PHP常见的6个错误提示及解决方法

    在php开发过程中,由于不知道向谁求助而心慌意乱地判断以为自己不适合学php.其实错误在每个人学习过程中都会碰到的,千万不要妄自菲薄.很多错误在报错的代码提示中已经告诉我们了,仔细看,不会就百度.现总结一些常见的php错误,以共享php新人. Php常见错误提示 一.Fatal error: Call to undefined function-- 函数不存在,可能的原因: 1.系统不存在这个函数且你也没自定义 2.有人会问,我在别的机器上就不报错.那是因为环境不同,这个函数在本机没开,怎么开?

  • PHP 错误处理机制

    在日常的项目开发过程中,总是会出现一些我们意想不到的异常错误,如果我们对此没有进行相对完善的处理,那么程序看上去也很不专业,也很可能就会成为别人攻击系统的有效信息:有些错误异常会终止脚本执行,这个时候如果没有一些错误提示信息的话,那么我们只能从头开始看代码了,要知道项目中成百上千行的代码对我们来说是件多么恐怖的事情啊,那么我们如何在项目开发的过程中快速准确地定位到异常.错误呢,并进行相应的处理,本文由自己对错误.异常处理的了解,再此分享与大家相互学习交流,并作为一个备忘. 系统错误处理器: PH

  • php安全配置记录和常见错误梳理(总结)

    通常部署完php环境后会进行一些安全设置,除了熟悉各种php漏洞外,还可以通过配置php.ini来加固PHP的运行环境,PHP官方也曾经多次修改php.ini的默认设置. 下面对php.ini中一些安全相关参数的配置进行说明 register_globals 当register_globals = ON时,PHP不知道变量从何而来,也容易出现一些变量覆盖的问题.因此从最佳实践的角度,强烈建议设置 register_globals = OFF,这也是PHP新版本中的默认设置. open_based

  • PHP错误和异常处理功能模块示例

    本文实例讲述了PHP错误和异常处理功能模块.分享给大家供大家参考,具体如下: 一.错误类型和基本的调试方法 PHP程序的错误发生一般归属于下列三个领域: 语法错误: 语法错误最常见,并且也容易修复.如:代码中遗漏一个分号.这类错误会阻止脚本的执行. 运行时错误: 这种错误一般不会阻止PHP脚本的执行,但会阻止当前要做的事情.输出一条错误,但php脚本继续执行 逻辑错误: 这种错误最麻烦,既不阻止脚本执行,也不输出错误消息. 一个异常则是在一个程序执行过程中出现的一个例外,或是一个事件,它中断了正

随机推荐