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
廣告