PHP 5 エラー関数

❮ 前章へ 次章へ ❯

簡単な通知からカスタマイズされた関数までエラーの際に返すもの

PHP エラーの概要

エラー関数は、エラー処理およびログの記録を行います。

エラー関数は、独自のエラー処理規則の定義とエラーログを記録する方法の変更を可能します。

ログ記録関数により、他のマシンや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

PHP エラーとログ関数

関数 説明
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()のエイリアス

PHP 5 定義済みエラーとログの定数

定数 説明
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を除く)

❮ 前章へ 次章へ ❯