承上:
PHP還允許您通過 set_error_handler( ) 函數指定您自已的出錯處理函數。
如:set_error_handler('my_error_handler');
錯誤處理函數
function my_error_handler($number, $string, $file, $line, $context)
{
$error = "= == == == ==/nPHP ERROR/n= == == == ==/n";
$error .= "Number: [$number]/n";
$error .= "String: [$string]/n";
$error .= "File: [$file]/n";
$error .= "Line: [$line]/n";
$error .= "Context:/n" . print_r($context, TRUE) . "/n/n";
error_log($error, 3, 'c:/log.txt');
}
則當
<?php
ini_set('error_reporting', E_ALL | E_STRICT);
ini_set('display_errors', 'Off');
ini_set('log_errors', 'On');
set_error_handler('my_error_handler');
echo $test;
function my_error_handler($number, $string, $file, $line, $context) {
$error = "= == == == ==/nPHP ERROR/n= == == == ==/n";
$error .= "Number: [$number]/n";
$error .= "String: [$string]/n";
$error .= "File: [$file]/n";
$error .= "Line: [$line]/n";
$error .= "Context:/n" . print_r($context, TRUE) . "/n/n";
error_log($error, 3, 'c:/log.txt');
}
?>
時,同樣會把錯誤顯示在log.txt下。當然也可通過某個函數專門處理錯誤發生時的流程。
PHP 5還允許向set_error_handler( )傳遞第二個參數以限定在什麼出錯情況下執行出定義的出錯處理函數。比如,現在建立一個處理告警級別(warning)錯誤的函數:
<?php
set_error_handler('my_warning_handler', E_WARNING);
?>
PHP5還提供了異常處理機制。這個後續若有學習再留下筆記。