定义和用法
error_reporting() 设置 PHP 的报错级别并返回当前级别。
语法
error_reporting(report_level)
如果参数 report_level 未指定,当前报错级别将被返回。下面几项是 report_level 可能的值,分14个等级供你自定义报错的方式,有数字和字符串两种参数的写法,中文说明对应如下:
数字 字符串 说明
1 E_ERROR 致命的运行时错误。 错误无法恢复过来。脚本的执行被暂停
2 E_WARNING 非致命的运行时错误。脚本的执行不会停止
4 E_PARSE 编译时解析错误。解析错误应该只由分析器生成
8 E_NOTICE 运行时间的通知。该脚本发现一些可能是一个错误,但也可能发生在正常运行一个脚本
16 E_CORE_ERROR 在PHP启动时的致命错误。这就好比一个在PHP核心的E_ERROR
32 E_CORE_WARNING 在PHP启动时的非致命的错误。这就好比一个在PHP核心E_WARNING警告
64 E_COMPILE_ERROR 致命的编译时错误。这就像由Zend脚本引擎生成了一个E_ERROR
128 E_COMPILE_WARNING 非致命的编译时错误。这就像由Zend脚本引擎生成了一个E_WARNING警告
256 E_USER_ERROR 致命的用户生成的错误。这就像由使用PHP函数trigger_error(程序员设置E_ERROR)
512 E_USER_WARNING 非致命的用户生成的警告。这就像由使用PHP函数trigger_error(程序员设定的一个E_WARNING警告)
1024 E_USER_NOTICE 用户生成的通知。这就像一个由使用PHP函数trigger_error(程序员一个E_NOTICE集)
2048 E_STRICT 运行时间的通知。
4096 E_RECOVERABLE_ERROR 捕捉致命的错误。这就像一个E_ERROR,但可以通过用户定义的处理捕获(又见set_error_handler())
8191 E_ALL来 所有的错误和警告,除非横向E_STRICT(E_STRICT将是PHP 6.0中E_ALL来一部分的)
其实还有个最牛叉的设置参数,无视一切错误警告请将参数设置为 0 。
比较实际具体的一点用法:
error_reporting(0);//禁用错误报告
error_reporting(E_ALL);//报告所有错误
任意数目的以上选项都可以用“或”来连接(用 OR 或 |),这样可以报告所有需要的各级别错误。例如:
error_reporting(E_ERROR | E_WARNING | E_PARSE);//报告运行时错误
只要屏蔽notice错误,却又不想屏蔽warning类的错误,例如:
error_reporting(E_ALL & ~E_NOTICE);