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 に記録するかを定義します。
注意: 本番ウェブサイトではエラーログ記録を使用することを強くお勧めします
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 は 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 スクリプトエラーをログに記録するファイルの名前を指定します。ファイルはウェブサーバーのユーザーによって書き込み可能である必要があります。特別な値 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() ユーザー定義の例外ハンドラ関数を設定します
trigger_error() ユーザーレベルのエラーメッセージを作成します
user_error() trigger_error() のエイリアス

PHP 事前定義エラーおよびログ定数

定数 説明
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 致命的なコンパイル時エラー。これは 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 エラーと警告を有効にします(PHP 5.4 以降 E_STRICT を除く)