標籤:註冊 未在 class errno 4.0 error tom ict 使用者
執行個體
通過 set_error_handler() 函數設定使用者自訂的錯誤處理程式,然後觸發錯誤(通過 trigger_error()):
<?php // 使用者定義的錯誤處理函數 function myErrorHandler($errno, $errstr, $errfile, $errline) { echo "<b>Custom error:</b> [$errno] $errstr<br>"; echo " Error on line $errline in $errfile<br>"; } // 設定使用者定義的錯誤處理函數 set_error_handler("myErrorHandler"); $test=2; // 觸發錯誤 if ($test>1) { trigger_error("A custom error has been triggered"); } ?>
以上代碼的輸出類似這樣:
Custom error: [1024] A custom error has been triggered Error on line 14 in C:\webfolder\test.php
定義和用法
set_error_handler() 函數設定使用者定義的錯誤處理函數。
注釋:如果使用該函數,會繞過標準 PHP 錯誤處理程式,同時如果必要,使用者定義錯誤程式通過 die() 終止指令碼。
注釋:如果錯誤發生在指令碼執行之前(比如檔案上傳時),將不會調用自訂的錯誤處理程式因為它尚未在那時註冊。
文法
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。 |
PHP set_error_handler() 函數