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


Posted in PHP onJuly 08, 2014

在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)
PHP 相关文章推荐
PHP 服务器配置(使用Apache及IIS两种方法)
Jun 01 PHP
php下清空字符串中的HTML标签的代码
Sep 06 PHP
php文件怎么打开 如何执行php文件
Dec 21 PHP
浅析Apache中RewriteCond规则参数的详细介绍
Jun 30 PHP
详解WordPress开发中的get_post与get_posts函数使用
Jan 04 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
Mar 15 PHP
PHP模板引擎Smarty内建函数详解
Apr 11 PHP
PHP简单获取及判断提交来源的方法
Apr 22 PHP
iOS自定义提示弹出框实现类似UIAlertView的效果
Nov 16 PHP
PHP面向对象程序设计OOP继承用法入门示例
Dec 27 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
Jul 08 #PHP
php+mysql不用递归实现的无限级分类实例(非递归)
Jul 08 #PHP
PHP生成短网址的3种方法代码实例
Jul 08 #PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
Jul 08 #PHP
php中函数前加&符号的作用分解
Jul 08 #PHP
PHP实现的连贯操作、链式操作实例
Jul 08 #PHP
PHP类中的魔术方法(Magic Method)简明总结
Jul 08 #PHP
You might like
深入apache配置文件httpd.conf的部分参数说明
2013/06/28 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
2013/11/26 PHP
浅谈PHP eval()函数定义和用法
2016/06/21 PHP
PHP创建多级目录的两种方法
2016/10/28 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
PHP数组常用函数实例小结
2018/08/20 PHP
用js+xml自动生成表格的东西
2006/12/21 Javascript
如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙
2011/03/03 Javascript
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
2012/01/13 Javascript
JS实现的自定义右键菜单实例二则
2015/09/01 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
2016/01/25 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
原生js实现键盘控制div移动且解决停顿问题
2016/12/05 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
2017/03/21 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
2017/05/07 Javascript
vue登录路由验证的实现
2017/12/13 Javascript
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
Vue 中可以定义组件模版的几种方式
2019/08/06 Javascript
Vue vm.$attrs使用场景详解
2020/03/08 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
ReactRouter的实现方法
2021/01/25 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
[47:02]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS paiN
2018/03/30 DOTA
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
Python实现pdf文档转txt的方法示例
2018/01/19 Python
Python内置类型性能分析过程实例
2020/01/29 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
爱尔兰家电数码商城:Currys PC World爱尔兰
2016/07/23 全球购物
小学国庆节活动方案
2014/02/11 职场文书
授权委托书范本(单位)
2014/09/28 职场文书
离婚协议书范文2014(夫妻感情破裂)
2014/12/14 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
中学教代会开幕词
2016/03/04 职场文书
MySQL 数据库范式化设计理论
2022/04/22 MySQL