set_error_handler() 関数は、ユーザー定義のエラー処理関数を設定します。
この関数は、実行時にユーザー独自のエラー処理メソッドを作成するために使用されます。
この関数は古いエラー ハンドラーを返すか、失敗した場合は NULL を返します。
set_error_handler(error_function,error_types)
パラメータ | 説明する |
---|---|
エラー関数 | 必須。エラーが発生したときに実行する関数を指定します。 |
エラーの種類 | オプション。ユーザー定義エラーをどのエラー報告レベルで表示するかを指定します。デフォルトは「E_ALL」です。考えられるエラー報告レベルの詳細を以下の表に示します。 |
error_function(error_level,error_message,error_file,error_line,error_context)
パラメータ | 説明する |
---|---|
エラーレベル | 必須。ユーザー定義エラーのエラー報告レベルを指定します。数値でなければなりません。考えられるエラー報告レベルの詳細を以下の表に示します。 |
エラーメッセージ | 必須。ユーザー定義エラーのエラーメッセージを指定します。 |
エラーファイル | オプション。エラーが発生したファイル名を指定します。 |
エラー行 | オプション。エラーが発生した行番号を指定します。 |
エラーコンテキスト | オプション。エラーが発生したアクティブなシンボル テーブルを指す配列を指定します。つまり、error_context には、各変数がエラーをスローする存在スコープを記述する配列が含まれます。 |
価値 | 絶え間ない | 説明する |
---|---|---|
2 | E_警告 | 致命的ではない実行時エラー。スクリプトの実行は停止されません。 |
8 | E_通知 | 実行時の通知。スクリプトの検出はバグである可能性がありますが、スクリプトを通常に実行しているときにも発生する可能性があります。 |
256 | E_USER_ERROR | ユーザーが生成した致命的なエラー。これは、プログラマが PHP 関数trigger_error()を使用して生成する E_ERROR に似ています。 |
512 | E_USER_WARNING | ユーザーが生成した致命的ではないエラー。これは、プログラマが PHP 関数trigger_error()を使用して生成する E_WARNING に似ています。 |
1024 | E_USER_NOTICE | ユーザーが生成した通知。これは、プログラマが PHP 関数trigger_error()を使用して生成する E_NOTICE に似ています。 |
4096 | E_RECOVERABLE_ERROR | キャッチ可能な致命的なエラー。これは、ユーザー定義のハンドルで捕捉できる E_ERROR に似ています (set_error_handler() を参照)。 |
8191 | E_ALL | E_STRICT を除くすべてのエラーおよび警告レベル (PHP 6.0 以降、E_STRICT は E_ALL の一部になります)。 |
ヒント:この関数を使用すると、標準の PHP エラー処理関数は完全にバイパスされます。必要に応じて、ユーザー定義のエラー ハンドラーはスクリプトを終了する必要があります (die())。注:スクリプトの実行前にエラーが発生した場合、その時点ではカスタム プログラムが登録されていないため、カスタム エラー ハンドラーは使用されません。
<?php//エラー ハンドラー関数 function customError($errno, $errstr, $errfile, $errline) { echo "<b>カスタム エラー:</b> [$errno] $errstr<br />"; $errfile の $errline 行でエラーが発生しました<br />"; echo "スクリプトの終了"; die(); }//エラーを設定しますhandlerset_error_handler("customError");$test=2;//trigger errorif ($test>1) {trigger_error("カスタム エラーが発生しました");
上記のコードの出力は次のようになります。
カスタム エラー: [1024] C:webfoldertest.phpEnding スクリプトの 19 行目でカスタム エラーが発生しました。