PHP エラー関数
PHP エラーの紹介
エラー関数は、エラー処理とログを処理するために使用されます。
エラー関数を使用すると、独自のエラー処理ルールを定義し、エラーをログに記録する方法を変更できます。
ロギング機能により、メッセージを他のマシン、電子メール、またはシステム ログに直接送信できます。
エラー報告機能を使用すると、提供されるエラーフィードバックのレベルと種類をカスタマイズできます。
インストール
PHPエラー関数は、PHPコアの一部です。これらの機能を使用するためにインストールは必要ありません。
ランタイム構成
エラー関数の動作は、php.iniの設定の影響を受けます。
エラーとログの構成オプション:
|
名前 |
デフォルト |
説明 |
変更可能 |
|---|---|---|---|
| error_reporting | NULL | エラー報告レベルを設定します(整数または名前付き定数のいずれか) | PHP_INI_ALL |
| display_errors | 「1」 | エラーを画面に出力するか、ユーザーに表示しないかを指定します。 注:この機能は本番システムでは決して使用しないでください(開発をサポートするためだけ) | PHP_INI_ALL |
| display_startup_errors | 「0」 | display_errorsがオンになっていても、PHPの起動シーケンス中に発生するエラーは表示されません 注:デバッグ以外では、display_startup_errorsをオフにしておくことを強くお勧めします | PHP_INI_ALL |
| log_errors | 「0」 | スクリプトエラーメッセージをサーバーのエラーログまたはerror_logのどちらに記録するかを定義します。 注:本番Web サイトでエラーを表示する代わりに、エラーログを使用することを強くお勧めします。 | PHP_INI_ALL |
| log_errors_max_len | 「1024」 | log_errorsの最大長をバイト単位で設定します。値「0」を使用して、最大長をまったく適用しないようにすることができます。この長さは、ログに記録されたエラー、表示されたエラー、および$php_errormsg(PHP4.3以降で使用可能)に適用されます。 | PHP_INI_ALL |
| ignore_repeated_errors | 「0」 | 繰り返されるエラー メッセージをログに記録するかどうかを指定します。 「1」に設定すると、同じ行の同じファイルからのエラーが繰り返されるエラーはログに記録されません (PHP4.3 以降で使用可能)。 | PHP_INI_ALL |
| ignore_repeated_source | 「0」 | 繰り返されるエラー メッセージをログに記録するかどうかを指定します。 「1」に設定すると、異なるファイルまたはソース行から繰り返されるエラーをログに記録しません(PHP4.3以降で使用可能)。 | PHP_INI_ALL |
| report_memleaks | 「1」 | "1"(デフォルト)に設定すると、このパラメータはZendメモリマネージャ(PHP4.3以降で利用可能)によって検出されたメモリ リークのレポートを表示します。 | PHP_INI_ALL |
| track_errors | 「0」 | 「1」に設定すると、最後のエラー メッセージが変数 $php_errormsgに常に存在します。 | PHP_INI_ALL |
| html_errors | 「1」 | エラー メッセージのHTMLタグをオフにします | PHP_INI_ALL PHP <= 4.2.3 の PHP_INI_SYSTEM |
| xmlrpc_errors | 「0」 | 通常のエラー報告をオフにし、エラーをXML-RPCエラー メッセージとしてフォーマットします(PHP4.1以降で使用可能)。 | PHP_INI_SYSTEM |
| xmlrpc_error_number | 「0」 | XML-RPC faultCode要素の値として使用されます(PHP4.1 以降で使用可能) | PHP_INI_ALL |
| docref_root | "" | (PHP4.3以降で利用可能) | PHP_INI_ALL |
| docref_ext | "" | (PHP4.3.2以降で利用可能) | PHP_INI_ALL |
| error_prepend_string | エラーメッセージの前に出力する文字列を指定します | PHP_INI_ALL | |
| error_append_string | NULL | エラーメッセージの後に出力する文字列を指定します | PHP_INI_ALL |
| error_log | NULL | スクリプトエラーが記録されるファイルの名前を指定します。このファイルは、Webサーバーのユーザーが書き込み可能である必要があります。特別な値syslogが使用されている場合、エラーは代わりにシステムロガーに送信されます。 | PHP_INI_ALL |
PHP エラーおよびロギング関数
|
関数 |
説明 |
|---|---|
| debug_backtrace() | バックトレースを生成します |
| debug_print_backtrace() | バックトレースを出力します |
| error_clear_last() | 最後のエラーをクリアします |
| error_get_last() | 最後に発生したエラーを返します |
| error_log() | エラーメッセージをログに送信し、
ファイルに、またはメール アカウントに |
| error_reporting() | 報告するエラーを指定します |
| restore_error_handler() | 以前のエラー ハンドラを復元します |
| restore_exception_handler() | 以前の例外ハンドラを復元します |
| set_error_handler() | ユーザー定義のエラー ハンドラ関数を設定します |
| set_exception_handler()td> | ユーザー定義のexception_handler()関数を設定します |
| trigger_error() | ユーザーレベルのエラーメッセージを作成します |
| user_error() | trigger_error()のエイリアス |
PHPの定義済みエラーおよびログ定数
|
value |
constant |
説明 |
|---|---|---|
| 1 | E_ERROR | 致命的な実行時エラー。回復できないエラー。スクリプトの実行が停止される |
| 2 | E_WARNING | 実行時の警告(致命的ではないエラー)。スクリプトの実行は停止されません |
| 4 | E_PARSE | コンパイル時の解析エラー。解析エラーはパーサーによってのみ生成される必要があります |
| 8 | E_NOTICE | 実行時の通知。スクリプトは、エラーの可能性があるものを検出しましたが、スクリプトを正常に実行したときにも発生する可能性があります |
| 16 | E_CORE_ERROR | PHP起動時の致命的なエラー。これはE_ERRORに似ていますが、PHPのコアによって生成されます。 |
| 32 | E_CORE_WARNING | PHP起動時の致命的ではないエラー。これはE_WARNING に似ていますが、PHPのコアによって生成されます。 |
| 64 | E_COMPILE_ERROR | 致命的なコンパイル時エラー。これは、Zend Scripting Engineによって生成されることを除いて、E_ERRORに似ています。 |
| 128 | E_COMPILE_WARNING | 致命的ではないコンパイル時エラー。これは、Zend Scripting Engineによって生成されることを除いて、E_WARNINGに似ています。 |
| 256 | E_USER_ERROR | 致命的なユーザー生成エラー。これはE_ERRORに似ていますが、PHP関数trigger_error()を使用してPHPコードで生成される点が異なります。 |
| 512 | E_USER_WARNING | 致命的ではないユーザー生成の警告。これは E_WARNING に似ていますが、PHP関数trigger_error()を使用してPHP コードで生成される点が異なります。 |
| 1024 | E_USER_NOTICE | ユーザー生成の通知。これは E_NOTICEに似ていますが、PHP関数trigger_error()を使用してPHPコードで生成される点が異なります。 |
| 2048 | E_STRICT | コードの最適な相互運用性と前方互換性を保証するコードへの変更をPHPが提案できるようにします(PHP5以降ですが、PHP5.4までE_ALLには含まれていません)。 |
| 4096 | E_RECOVERABLE_ERROR | キャッチ可能な致命的なエラー。おそらく危険なエラーが発生しましたが、エンジンが不安定な状態のままではなかったことを示します。エラーがユーザー定義のハンドルによってキャッチされない場合、アプリケーションはE_ERRORとして中止されます (PHP5.2以降)。 |
| 8192 | E_DEPRECATED | 実行時の通知。これを有効にすると、将来のバージョンで動作しないコードに関する警告が表示されます(PHP5.3以降) |
| 16384 | E_USER_DEPRECATED | ユーザー生成の警告メッセージ。これはE_DEPRECATED に似ていますが、PHP関数trigger_error()を使用してPHPコードで生成される点が異なります (PHP 5.3 以降)。 |
| 32767 | E_ALL | すべての PHP エラーと警告を有効にします (バージョン < 5.4のE_STRICT を除く) |