PHP set_error_handler() ファンクション

set_error_handler() ファンクションを使用してユーザー定義のエラーハンドラープログラムを設定し、エラーをトリガー(trigger_error() を通じて):

<?php
 // ユーザー定義のエラーハンドラーファンクション
 function myErrorHandler($errno, $errstr, $errfile, $errline) {
     echo "<b>カスタムエラー:</b> [$errno] $errstr<br>";
     echo "エラー発生行 $errline  $errfile<br>";
 }
 // 設定ユーザー定義のエラーハンドラーファンクション
 set_error_handler("myErrorHandler");
 $test=2;
 // エラーをトリガー
 if ($test>1) {
     trigger_error("カスタムエラーがトリガーされました");
 }
 ?> 

上記のコードの出力は以下のようになります:

カスタムエラー: [1024] カスタムエラーがトリガーされました
 C:\webfolder\test.php の 14 行目でエラーが発生しました

定義と使用法

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: エラーハンドラーションは $php_errormsg を表示するために FALSE を返さなければなりません。