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 を返さなければなりません。 |