PHP set_error_handler() 函式
示例
使用 set_error_handler() 函式設定使用者自定義錯誤處理程式,並觸發錯誤(使用 trigger_error())
<?php
// 使用者自定義錯誤處理程式
function myErrorHandler($errno, $errstr, $errfile, $errline) {
echo "<b>自定義錯誤:</b> [$errno] $errstr<br>";
echo " Error on line $errline in $errfile<br>";
}
// 設定使用者自定義錯誤處理程式
set_error_handler("myErrorHandler");
$test=2;
// 觸發錯誤
if ($test>1) {
trigger_error("已觸發自定義錯誤");
}
?>
自己動手試一試 »
定義和用法
set_error_handler() 函式設定一個使用者自定義的錯誤處理程式。
注意: 如果使用了此函式,標準的 PHP 錯誤處理程式將被完全繞過,使用者自定義的錯誤處理程式必須終止指令碼,必要時使用 die()。
注意: 如果在指令碼執行前發生錯誤,則無法使用自定義錯誤處理程式,因為它當時尚未註冊。
語法
set_error_handler(errorhandler, E_ALL | E_STRICT)
引數值
引數 | 描述 |
---|---|
errorhandler | 必需。指定發生錯誤時要執行的函式名稱。 |
E_ALL|E_STRICT | 可選。指定使用者自定義錯誤將在哪個錯誤報告級別顯示。預設為 "E_ALL" |
技術詳情
返回值 | 包含先前定義的錯誤處理程式的字串。 |
---|---|
PHP 版本 | 4.0.1+ |
PHP 更新日誌 | PHP 5.5: 引數 errorhandler 現在接受 NULL。 PHP 5.2: 錯誤處理程式必須返回 FALSE 才能填充 $php_errormsg。 |
PHP 錯誤參考