级别常量 | 错误值 | 错误描述 |
---|---|---|
E_ERROR | 1 | 致命的运行错误(阻止脚本继续运行) |
E_WARNING | 2 | 运行时警告 |
E_PARSE | 4 | 从语法中解析错误 |
E_NOTICE | 8 | 运行时注意消息 |
E_CORE_ERROR | 16 | PHP启动时初始化过程中的致命错误 |
E_CORE_WARNING | 32 | PHP启动时初始化过程中的警告 |
E_COMPILE_ERROR | 64 | 编译时致命错误 |
E_COMPILE_WARNING | 128 | 编译时警告 |
E_USER_ERROR | 256 | 用户自定义的致命错误 |
E_USER_WARNING | 512 | 用户自定义的警告 |
E_USER_NOTICE | 1024 | 用户自定义的提醒 |
E_STRICT | 2048 | 编码标准化警告 |
E_ALL | 6143 | 所有的错误、警告和注意消息 |
以下级别的错误不能由用户定义的函数来处理:
E_ERROR 、
E_PARSE 、
E_CORE_WARNING 、
E_COMPILE_ERROR 、
E_COMPILE_WARNING
和在 调用 set_error_handler() 函数所在文件中产生的大多数 E_STRICT 。
如果错误发生在脚本执行之前(比如文件上传时),将不会 调用自定义的错误处理程序因为它尚未在那时注册。
<?php
set_error_handler('my_error');
$message = '';
function my_error($error_type, $error_message, $error_file, $error_line)
{
global $message;
$message = "错误类型{$error_type},错误消息{$error_message},错误文件{$error_file},在{$error_line}行".PHP_EOL;
}
gettype($a);
echo '111';
gettype();
echo '222';
echo $message;
EXIT;