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 を除く) |
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。