error_reporting错误级别变量对照

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

1. 手册上的DEMO

<?php
// 关闭所有PHP错误报告
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

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

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

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

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

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

?>

其中,该函数的参数有两种方式,字符串和数字,这两者其中必有某种联系,经过在网上的搜索终于找到了:

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),则表示记录所有的错误信息。

原创文章,转载请注明: 转载自HSBLOG

本文链接地址: error_reporting错误级别变量对照