エラー関数は、エラー処理およびログの記録を行います。
エラー関数は、独自のエラー処理規則の定義とエラーログを記録する方法の変更を可能します。
ログ記録関数により、他のマシンやemail、システムログ等に直接メッセージを送信することが可能になります。
エラー報告関数により、エラーのフィードバックのレベルと種類をカスタマイズすることが可能になります。
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 (PHP 4.3から利用可能)に適用される | PHP_INI_ALL |
ignore_repeated_errors | "0" | 繰り返されるエラーメッセージを記録するかどうかを指定する。 "1"に設定すると、同じ行の同じファイルからのエラーが繰り返されるエラーは記録されません(PHP 4.3以降使用可能) | PHP_INI_ALL |
ignore_repeated_source | "0" | 繰り返されるエラーメッセージを記録するかどうかを指定する。 "1"に設定すると、異なるファイルやソース行からのエラーが繰り返されてエラーが記録されることはありません(PHP 4.3以降使用可能)) | PHP_INI_ALL |
report_memleaks | "1" | このパラメータを"1"(デフォルト)に設定した場合、Zendメモリマネージャが検出したメモリリークのレポートを表示する(PHP 4.3以降使用可能) | PHP_INI_ALL |
track_errors | "0" | "1"に設定すると、最後のエラーメッセージは常に変数$php_errormsgに代入される | PHP_INI_ALL |
html_errors | "1" | エラーメッセージのHTMLタグを無効にする | PHP_INI_ALL PHP_INI_SYSTEM in PHP <= 4.2.3. |
xmlrpc_errors | "0" | 通常のエラー報告を無効にし、エラーをXML-RPCエラーメッセージとしてフォーマットする(PHP 4.1から利用可能) | PHP_INI_SYSTEM |
xmlrpc_error_number | "0" | XML-RPC の faultCode 要素の値として使用する(PHP 4.1から利用可能) | PHP_INI_ALL |
docref_root | "" | (PHP 4.3から利用可能) | PHP_INI_ALL |
docref_ext | "" | (PHP 4.3.2以降で利用可能) | PHP_INI_ALL |
error_prepend_string | NULL | エラーメッセージの前に出力する文字列を指定する | PHP_INI_ALL |
error_append_string | NULL | エラーメッセージの後に出力する文字列を指定する | PHP_INI_ALL |
error_log | NULL | スクリプト・エラーを記録するファイル名を指定する。このファイルは、Webサーバのユーザによって書き込み可能であることが必要。 特別な値syslogが指定されている場合、エラーはファイルでなくシステムロガーに送信される | PHP_INI_ALL |
関数 | 説明 |
---|---|
debug_backtrace() | バックトレースを生成する |
debug_print_backtrace() | バックトレースを表示する |
error_get_last() | 最も最近のエラーを返す |
error_log() | エラーメッセージをログ、ファイル、またはメールアカウントに送信する |
error_reporting() | 報告するエラーを指定する |
restore_error_handler() | 以前のエラーハンドラを回復する |
restore_exception_handler() | 以前の例外ハンドラを回復する |
set_error_handler() | ユーザ定義のエラーハンドラ関数を設定する |
set_exception_handler() | ユーザ定義の例外ハンドラ関数を設定する |
trigger_error() | ユーザレベルのエラーメッセージを作成する |
user_error() | trigger_error()のエイリアス |
値 | 定数 | 説明 |
---|---|---|
1 | E_ERROR | 致命的な実行時エラー。回復不能なエラー。スクリプトの実行が停止される Fatal run-time errors. Errors that cannot be recovered from. Execution of the script is halted |
2 | E_WARNING | 実行時の警告(致命的でないエラー)。スクリプトの実行は停止しない |
4 | E_PARSE | コンパイル時のパースエラー。パースエラーは、パーサによってのみ生成される |
8 | E_NOTICE | 実行時の警告。スクリプトはエラーである可能性があるものに遭遇したが、通常のスクリプトを実行しているときにも発生することがある |
16 | E_CORE_ERROR | PHP 起動時の致命的なエラー。これはE_ERRORに似ているが、PHPのコアによって発行される点が異なる |
32 | E_CORE_WARNING | PHP 起動時の致命的ではないエラー。これはE_ERRORに似ているが、PHPのコアによって発行される点が異なる |
64 | E_COMPILE_ERROR | コンパイル時の致命的なエラー。E_ERRORに似ているが、Zendスクリプティングエンジンによって発行される点が異なる |
128 | E_COMPILE_WARNING | コンパイル時の致命的ではないエラー。E_WARNINGに似ているが、Zendスクリプティングエンジンによって発行される点が異なる |
256 | E_USER_ERROR | ユーザ生成の致命的なエラー。E_ERRORに似ているが、PHPコード上でtrigger_error()関数を使用した場合に発行される点が異なる |
512 | E_USER_WARNING | ユーザ生成の致命的ではない警告。E_WARNINGに似ているが、PHPコード上でtrigger_error()関数を使用した場合に発行される点が異なる |
1024 | E_USER_NOTICE | ユーザ生成の注意メッセージ。E_NOTICEに似ているが、PHPコード上でtrigger_error()関数を使用した場合に発行される点が異なる |
2048 | E_STRICT | コードの相互運用性や互換性を維持するために PHP がコードの変更を提案する(PHP 5以降、PHP 5.4まではE_ALLは含まれていません) |
4096 | E_RECOVERABLE_ERROR | キャッチできる致命的なエラー。危険なエラーが発生したが、エンジンが不安定な状態になるほどではないことを表す。 ユーザ定義のハンドラでエラーがキャッチされなかった場合は、E_ERROR として異常終了する (PHP 5.2より) |
8192 | E_DEPRECATED | 実行時の注意。これを有効にすると、将来のバージョンで動作しなくなるコードについての警告を受け取ることができる (PHP 5.3より) |
16384 | E_USER_DEPRECATED | ユーザー定義の警告メッセージ。これは E_DEPRECATED と同等だが、 PHPのコード上で関数 trigger_error() によって作成されるという点が異なる (PHP 5.3より) |
32767 | E_ALL | すべてのPHPエラーと警告を有効にする(バージョン < 5.4のE_STRICTを除く) |