PHP set_error_handler() 函数

实例

通过 set_error_handler() 函数设置用户自定义的错误处理程序,然后触发错误(通过 trigger_error()):

  1. <?php
  2. // 用户定义的错误处理函数
  3. function myErrorHandler($errno, $errstr, $errfile, $errline) {
  4. echo "<b>Custom error:</b> [$errno] $errstr<br>";
  5. echo " Error on line $errline in $errfile<br>";
  6. }
  7.  
  8. // 设置用户定义的错误处理函数
  9. set_error_handler("myErrorHandler");
  10.  
  11. $test=2;
  12.  
  13. // 触发错误
  14. if ($test>1) {
  15. trigger_error("A custom error has been triggered");
  16. }
  17. ?>

以上代码的输出类似这样:

  1. Custom error: [1024] A custom error has been triggered
  2. Error on line 14 in C:\webfolder\test.php

定义和用法

set_error_handler() 函数设置用户定义的错误处理函数。

注释:如果使用该函数,会绕过标准 PHP 错误处理程序,同时如果必要,用户定义错误程序通过 die() 终止脚本。

注释:如果错误发生在脚本执行之前(比如文件上传时),将不会调用自定义的错误处理程序因为它尚未在那时注册。

语法

  1. 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。