級别常量 | 錯誤值 | 錯誤描述 |
---|---|---|
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;