承上:
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还提供了异常处理机制。这个后续若有学习再留下笔记。