PHP - set_error_handler() 函数



语法

mixed set_error_handler ( callback $error_handler [, int $error_types] );

定义和用法

此函数可用于定义您自己处理运行时错误的方式,例如在需要在发生严重错误时清理数据/文件的应用程序中,或者在需要在特定条件下触发错误时。

参数

序号 参数及描述
1

error_handler (必填)

它指定在发生错误时要运行的函数。error_handler 的语法如下所示。

2

error_types (可选)

它指定在哪些错误报告级别上显示用户定义的错误。默认为“E_ALL”。有关可能的错误报告级别,请参阅“PHP 错误和日志记录常量:”。

错误处理函数语法

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

以下是参数的描述:

  • errno − 第一个参数 errno 包含引发的错误级别,这是一个整数。

  • errstr − 第二个参数 errstr 包含错误消息,这是一个字符串。

  • errfile − 第三个参数是可选的 errfile,它包含引发错误的文件名,这是一个字符串。

  • errline − 第四个参数是可选的 errline,它包含引发错误的行号,这是一个整数。

  • errcontext − 第五个参数是可选的 errcontext,它是一个指向错误发生时活动符号表的数组。

返回值

返回一个字符串,其中包含先前定义的错误处理程序(如有),或者在出错时返回 NULL。

示例

以下是此函数的用法:

<?php
   function customError($errno, $errstr, $errfile, $errline) {
      echo "Custom error: [$errno] $errstr\n";
      echo "Error on line $errline in $errfile\n";
      echo "Ending Script";
      
      die();
   }
   
   //set error handler
   set_error_handler("customError");
   $test = 0;
   
   //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 16 
in /home/cg/root/1531703/main.php 
Ending Script
php_function_reference.htm
广告