PHPのエラーはじめに
エラー関数はエラー処理とロギングに対処するために使用されています。
誤差関数は、私たちは独自のエラー処理規則を定義し、エラーをログに記録することが可能な方法を変更することができます。
ログ機能は、私たちは他のマシン、電子メール、またはシステムログに直接メッセージを送信することができます。
エラー報告機能は、私たちは与えられているもののレベルとエラーフィードバックの種類をカスタマイズすることができます。
インスト
PHPエラー関数はPHPのコアの一部です。 いいえ、インストールは、これらの機能を使用するために必要とされません。
実行時設定
誤差関数の動作は、php.iniの設定により影響を受けています。
エラーおよびロギング構成オプション:
名 | デフォルト | 説明 | 可変 |
---|---|---|---|
error_reporting | ヌル | (整数または名前付き定数のいずれか)エラー報告のレベルを設定します。 | PHP_INI_ALL |
display_errors | "1" | エラーが画面に印刷されなければならない、またはそれらがユーザーから隠されるべき場合かどうかを指定します。 注意:この機能は、本番システム上で使用すべきではありません(あなただけの開発をサポートするため) | PHP_INI_ALL |
display_startup_errors | "0" | display_errorsをonにした場合でも、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に(available since PHP 4.3) | PHP_INI_ALL |
ignore_repeated_errors | "0" | 繰り返されるエラーメッセージをログに記録するかどうかを指定します。 設定すると"1" 、それが同じライン上の同じファイルから繰り返しエラーが発生したエラーを記録しません(available since PHP 4.3) | PHP_INI_ALL |
ignore_repeated_source | "0" | 繰り返されるエラーメッセージをログに記録するかどうかを指定します。 設定した場合"1" 、それは、異なるファイルまたはソース行から繰り返しエラーでエラーを記録しません(available since PHP 4.3) | PHP_INI_ALL |
report_memleaks | "1" | 設定した場合は"1" (the default) 、このパラメータは、Zendメモリマネージャによって検出されたメモリリークのレポートが表示されます(available since PHP 4.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エラーメッセージとしてエラーをフォーマット(available since PHP 4.1) | PHP_INI_SYSTEM |
xmlrpc_error_number | "0" | XML-RPCにfaultCode要素の値として使用される(available since 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 | ヌル | エラーメッセージの前に出力する文字列を指定します | PHP_INI_ALL |
error_append_string | ヌル | エラーメッセージの後に出力する文字列を指定します | PHP_INI_ALL |
エラーログ | ヌル | スクリプトエラーが記録されるファイルの名前を指定します。 ファイルには、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 | 致命的なランタイムエラー。 から回収することができないエラー。 スクリプトの実行が停止され |
2 | E_WARNING | 実行時の警告(non-fatal errors) 。 スクリプトの実行が停止されていません |
4 | E_PARSE | コンパイル時にはエラーを解析します。 エラーを解析のみパーサによって生成されなければなりません |
8 | E_NOTICE | 実行時に通知。 スクリプトはエラーであるかもしれない何かを発見したが、通常のスクリプトを実行している場合にも起こる可能性 |
16 | E_CORE_ERROR | PHPの起動時に致命的なエラー。 それがPHPのコアによって生成されることを除きこれは、E_ERRORに似ています |
32 | E_CORE_WARNING | PHPの起動時に非致命的なエラー。 それがPHPのコアによって生成されることを除きこれは、E_WARNINGに似ています |
64 | E_COMPILE_ERROR | 致命的なコンパイル時のエラー。 それがZendスクリプティングエンジンによってによって生成されることを除きこれは、E_ERRORに似ています |
128 | E_COMPILE_WARNING | 非致命的なコンパイル時のエラー。 それがZendスクリプティングエンジンによってによって生成されることを除きこれは、E_WARNINGに似ています |
256 | E_USER_ERROR | 致命的なユーザー生成エラー。 それはPHP関数使って、PHPコードで生成された以外は、これは、E_ERRORに似ているtrigger_error() |
512 | E_USER_WARNING | 非致命的なユーザー生成警告。 それはPHP関数使って、PHPコードで生成された以外は、これは、E_WARNINGに似ているtrigger_error() |
1024 | E_USER_NOTICE | ユーザー生成の通知。 それはPHP関数使って、PHPコードで生成された以外は、これは、E_NOTICEに似ているtrigger_error() |
2048 | E_STRICT | (PHP 5のでしかしPHP 5.4まではE_ALLには含まれない)PHPはコードの相互運用性や互換性が保証されますあなたのコードに変更を提案持つことが有効 |
4096 | E_RECOVERABLE_ERROR | キャッチ可能な致命的なエラー。 おそらく危険なエラーが発生しましたが、不安定な状態でエンジンを残していなかったことを示します。 エラーがユーザ定義のハンドルによってキャッチされていない場合、アプリケーションは、それがE_ERRORたようにアボート(Since PHP 5.2) |
8192 | E_DEPRECATED | 実行時に通知。 将来のバージョンでは動作しませんコードに関する警告を受け取るために、これを有効にします(Since PHP 5.3) |
16384 | E_USER_DEPRECATED | ユーザーが生成した警告メッセージ。 それはPHP関数使って、PHPコードで生成された以外は、これは、E_DEPRECATED似ているtrigger_error() (PHP 5.3以降) |
32767 | E_ALL | すべてのPHPのエラーと警告の有効化(except E_STRICT in versions < 5.4) |