PHP set_error_handler() 函數(shù)

2018-11-18 17:51 更新

PHP set_error_handler() 函數(shù)


PHP Error 參考手冊 完整的 PHP Error 參考手冊

定義和用法

set_error_handler() 函數(shù)設(shè)置用戶自定義的錯誤處理函數(shù)。

該函數(shù)用于創(chuàng)建運(yùn)行期間的用戶自己的錯誤處理方法。

該函數(shù)返回舊的錯誤處理程序,如果失敗則返回 NULL。

語法

set_error_handler(error_function,error_types)

參數(shù) 描述
error_function 必需。規(guī)定發(fā)生錯誤時(shí)運(yùn)行的函數(shù)。
error_types 可選。規(guī)定在哪個(gè)錯誤報(bào)告級別會顯示用戶定義的錯誤。默認(rèn)是 "E_ALL"??赡艿腻e誤報(bào)告級別詳見下面的表格。

error_function

語法

error_function(error_level,error_message,
error_file,error_line,error_context)

參數(shù) 描述
error_level 必需的。規(guī)定用戶自定義的錯誤的錯誤報(bào)告級別。必須是值數(shù)字??赡艿腻e誤報(bào)告級別詳見下面的表格。
error_message 必需的。規(guī)定用戶自定義的錯誤的錯誤消息。
error_file 可選。規(guī)定發(fā)生錯誤的文件名。
error_line 可選。規(guī)定發(fā)生錯誤的行號。
error_context 可選。規(guī)定指向活躍符號表中發(fā)生錯誤的數(shù)組。換句話說,error_context 將包含一個(gè)說明每個(gè)變量引發(fā)錯誤的存在范圍的數(shù)組。

錯誤報(bào)告級別

常量 描述
2 E_WARNING 運(yùn)行時(shí)非致命的錯誤。沒有停止執(zhí)行腳本。
8 E_NOTICE 運(yùn)行時(shí)的通知。腳本發(fā)現(xiàn)可能是一個(gè)錯誤,但也可能在正常運(yùn)行腳本時(shí)發(fā)生。
256 E_USER_ERROR 用戶生成的致命錯誤。這就如同由程序員使用 PHP 函數(shù) trigger_error() 生成的 E_ERROR。
512 E_USER_WARNING 用戶生成的非致命錯誤。這就如同由程序員使用 PHP 函數(shù) trigger_error() 生成的 E_WARNING。
1024 E_USER_NOTICE 用戶生成的通知。這就如同由程序員使用 PHP 函數(shù) trigger_error() 生成的 E_NOTICE。
4096 E_RECOVERABLE_ERROR 可捕獲的致命錯誤。這就如同一個(gè)可以由用戶定義的句柄捕獲的 E_ERROR(見 set_error_handler())。
8191 E_ALL 所有的錯誤和警告的級別,除了 E_STRICT(自 PHP 6.0 起,E_STRICT 將作為 E_ALL的一部分)。


提示和注釋

提示:如果使用了該函數(shù),會完全繞過標(biāo)準(zhǔn)的 PHP 錯誤處理函數(shù)。如果必要,用戶自定義的錯誤處理程序必須終止腳本(die())。

注釋: 如果在腳本執(zhí)行前發(fā)生錯誤,由于在那時(shí)自定義程序還沒有注冊,因此就不會用到這個(gè)自定義錯誤處理程序。


實(shí)例

<?php
//error handler function
function customError($errno, $errstr, $errfile, $errline)
{
echo "<b>Custom error:</b> [$errno] $errstr<br />";
echo " Error on line $errline in $errfile<br />";
echo "Ending Script";
die();
}

//set error handler
set_error_handler("customError");

$test=2;

//trigger error
if ($test>1)
{
trigger_error("A custom error has been triggered");
}
?>

上面代碼的輸出如下所示:

Custom error: [1024] A custom error has been triggered
Error on line 19 in C:webfoldertest.php
Ending Script


PHP Error 參考手冊 完整的 PHP Error 參考手冊
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號