值 | 常量 | 描述 |
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 | 运行时通知。PHP建议改变你的代码,以帮助该代码的互操作性和兼容性 |
4096 | E_RECOVERABLE_ERROR | 可捕获的致命错误,类似 E_ERROR,但可被用户定义的处理程序捕获(参见 set_error_handler()) |
8191 | E_ALL | 所有的错误和警告,除级别E_STRICT(在PHP6.0中,E_STRICT将是E_ALL的一部分) |
参数 | 描述 |
error_function | 必需。规定发生错误时运行的函数。 |
error_types | 可选。规定在哪个错误报告级别会显示用户定义的错误。默认是 "E_ALL"。 |
/** * * @param type $error_level 错误级别 * @param type $error_message错误信息 * @param type $error_file 可选 错误文件 * @param type $error_line 可选 错误行 * @param type $error_context 可选。规定一个数组,包含了当错误发生时在用的每个变量以及它们的值。 */function my_error($error_level, $error_message, $error_file, $error_line, $error_context) {echo date("Y-m-d H:i:s") . $error_level . $error_message . $error_file . $error_line;var_dump($error_context);}set_error_handler("my_error", E_ALL);print_r($a); //通过上案例可以得知,在注册 my_error 方法时,系统会自动覆盖原有的错误处理 error_fuction() 方法
参数 | 描述 |
error_message | 必需。规定错误消息。长度限制为 1024 个字符。 |
error_types | 可选。规定错误消息的错误类型。 可能的值:
|
/** * * @param type $level * @param type $msg */function my_error($level, $msg) {switch ($level) {case E_USER_ERROR:echo "ERROR:<br/>";break;case E_USER_WARNING:echo "WARNING:<br/>";break;case E_USER_NOTICE:echo "NOTICE:<br/>";break;default:break;}echo "错误编号:" . $level . " <br/>";echo "错误信息:" . $msg;}//注册错误处理器set_error_handler("my_error");if (89 > 8) {//调用错误触发器trigger_error("这是错误啊", E_USER_WARNING);}运行结果如下: