PHP set_error_handler() 函數(shù)
PHP set_error_handler() 函數(shù)

定義和用法
set_error_handler() 函數(shù)設(shè)置用戶(hù)自定義的錯(cuò)誤處理函數(shù)。
該函數(shù)用于創(chuàng)建運(yùn)行期間的用戶(hù)自己的錯(cuò)誤處理方法。
該函數(shù)返回舊的錯(cuò)誤處理程序,如果失敗則返回 NULL。
語(yǔ)法
set_error_handler(error_function,error_types)
參數(shù) | 描述 |
---|---|
error_function | 必需。規(guī)定發(fā)生錯(cuò)誤時(shí)運(yùn)行的函數(shù)。 |
error_types | 可選。規(guī)定在哪個(gè)錯(cuò)誤報(bào)告級(jí)別會(huì)顯示用戶(hù)定義的錯(cuò)誤。默認(rèn)是 "E_ALL"。可能的錯(cuò)誤報(bào)告級(jí)別詳見(jiàn)下面的表格。 |
error_function
語(yǔ)法
error_function(error_level,error_message,
error_file,error_line,error_context)
error_file,error_line,error_context)
參數(shù) | 描述 |
---|---|
error_level | 必需的。規(guī)定用戶(hù)自定義的錯(cuò)誤的錯(cuò)誤報(bào)告級(jí)別。必須是值數(shù)字??赡艿腻e(cuò)誤報(bào)告級(jí)別詳見(jiàn)下面的表格。 |
error_message | 必需的。規(guī)定用戶(hù)自定義的錯(cuò)誤的錯(cuò)誤消息。 |
error_file | 可選。規(guī)定發(fā)生錯(cuò)誤的文件名。 |
error_line | 可選。規(guī)定發(fā)生錯(cuò)誤的行號(hào)。 |
error_context | 可選。規(guī)定指向活躍符號(hào)表中發(fā)生錯(cuò)誤的數(shù)組。換句話說(shuō),error_context 將包含一個(gè)說(shuō)明每個(gè)變量引發(fā)錯(cuò)誤的存在范圍的數(shù)組。 |
錯(cuò)誤報(bào)告級(jí)別
值 | 常量 | 描述 |
---|---|---|
2 | E_WARNING | 運(yùn)行時(shí)非致命的錯(cuò)誤。沒(méi)有停止執(zhí)行腳本。 |
8 | E_NOTICE | 運(yùn)行時(shí)的通知。腳本發(fā)現(xiàn)可能是一個(gè)錯(cuò)誤,但也可能在正常運(yùn)行腳本時(shí)發(fā)生。 |
256 | E_USER_ERROR | 用戶(hù)生成的致命錯(cuò)誤。這就如同由程序員使用 PHP 函數(shù) trigger_error() 生成的 E_ERROR。 |
512 | E_USER_WARNING | 用戶(hù)生成的非致命錯(cuò)誤。這就如同由程序員使用 PHP 函數(shù) trigger_error() 生成的 E_WARNING。 |
1024 | E_USER_NOTICE | 用戶(hù)生成的通知。這就如同由程序員使用 PHP 函數(shù) trigger_error() 生成的 E_NOTICE。 |
4096 | E_RECOVERABLE_ERROR | 可捕獲的致命錯(cuò)誤。這就如同一個(gè)可以由用戶(hù)定義的句柄捕獲的 E_ERROR(見(jiàn) set_error_handler())。 |
8191 | E_ALL | 所有的錯(cuò)誤和警告的級(jí)別,除了 E_STRICT(自 PHP 6.0 起,E_STRICT 將作為 E_ALL的一部分)。 |
提示和注釋
提示:如果使用了該函數(shù),會(huì)完全繞過(guò)標(biāo)準(zhǔn)的 PHP 錯(cuò)誤處理函數(shù)。如果必要,用戶(hù)自定義的錯(cuò)誤處理程序必須終止腳本(die())。
注釋?zhuān)?/b>
如果在腳本執(zhí)行前發(fā)生錯(cuò)誤,由于在那時(shí)自定義程序還沒(méi)有注冊(cè),因此就不會(huì)用到這個(gè)自定義錯(cuò)誤處理程序。
實(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");
}
?>
//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
Error on line 19 in C:webfoldertest.php
Ending Script

相關(guān)文章
- PHP 教程
- PHP 簡(jiǎn)介
- PHP 數(shù)組
- PHP While 循環(huán)
- PHP 多維數(shù)組
- PHP array() 函數(shù)
- PHP array_fill_keys() 函數(shù)
- PHP array_intersect_ukey() 函數(shù)
- PHP array_key_exists() 函數(shù)
- PHP array_multisort() 函數(shù)
- PHP array_push() 函數(shù)
- PHP array_reduce() 函數(shù)
- PHP array_udiff_uassoc() 函數(shù)
- PHP ksort() 函數(shù)
- PHP next() 函數(shù)
- PHP prev() 函數(shù)
- PHP rsort() 函數(shù)
- PHP uksort() 函數(shù)
- PHP cURL 函數(shù)
- PHP 5 Filesystem 函數(shù)