多くの場合、PHP ファイルには、大きな白いページが出力されるなど、トラブルシューティングが非常に困難なエラーがいくつか含まれており、エラーを修正する方法はありません。 PHP のエラー レベルによって致命的ではないエラーがブロックされ、エラー プロンプトが表示されなくなる可能性があります。したがって、PHP のエラー レベルを理解し、慣れることが新しいデバッグ方法になる可能性があります。
php.ini のエラー報告レベル デフォルトでは、PHP エラー報告レベルは E_NOTICE です。E_ALL は、致命的ではないエラーをすべて報告することを意味します。これは、これらのエラーが大きな問題 (未定義の変数の使用など) を引き起こす可能性があるためです。
アラートとコーディング標準化警告を除くすべてのエラーを表示します。
エラーレポートはビットフィールドです。数値を合計して、必要なレベルのエラー レポートを得ることができます。
E_ALL - すべてのエラーと警告 (E_STRICT を除く)
E_ERROR - 致命的なランタイム エラー
E_WARNING - 実行時警告 (致命的ではないエラー)
E_PARSE - コンパイル時の解析エラー
E_NOTICE - 実行時のリマインダー (多くの場合、コード内のバグによって引き起こされますが、意図的な動作によって引き起こされる場合もあります。)
E_STRICT - エンコーディングの標準化に関する警告。PHP は、最適な相互運用性と上位互換性を確保するためにコードを変更する方法を推奨します。
E_CORE_ERROR - PHP 起動時の初期化中の致命的なエラー
E_CORE_WARNING - PHP 起動時の初期化プロセス中の警告 (致命的ではないエラー)
E_COMPILE_ERROR - 致命的なコンパイル時エラー
E_COMPILE_WARNING - コンパイル時警告 (致命的ではないエラー)
E_USER_ERROR - ユーザー定義のエラー メッセージ
E_USER_WARNING - ユーザー定義の警告メッセージ
E_USER_NOTICE - ユーザー定義のリマインダー メッセージ
E_ALL E_STRICT に設定すると、すべてのエラー情報が記録されるため、Web サイトに多数のエラー コードが表示される可能性がありますが、コードを最適化できるプログラマにとっては良いことだと言えます。致命的なエラーはプログラムの動作には影響しませんが、PHP の負荷が増加し、通常は Web サイトのプロセス (IIS のアプリケーション プールなど) の負荷が増加します。
-------------------------------------------------- ----------------------------------------
PHP でエラー報告を微調整
発生したエラーを表示するように PHP を設定したら、エラー報告のレベルを調整することができます。 PHP インストール全体またはスタンドアロン スクリプトは、さまざまなエラー レベルを報告または無視するように設定できます。表 7-1 にはほとんどのレベルがリストされていますが、通常は次の 3 つのカテゴリのいずれかに分類されます:
l 注 (注意)、これはスクリプトの実行を妨げるものではなく、必ずしも問題になるわけではありません。
l 警告: 問題を示しますが、スクリプトの実行は妨げられません。
l スクリプトの続行を妨げるエラー (基本的にスクリプトの実行を妨げる一般的な解析エラーを含む)。表 7-1 PHP エラー報告設定。error_reporting() 関数または php.ini ファイルで使用されます。 E_ALL の値は古いバージョンの PHP とは異なり、E_STRICT が含まれていないことに注意してください (ただし、PHP 6 には存在します)
シリアル番号
|
通常量 | レポート | ||||||||||||||||||||||||
1 | E_エラー | 致命的なランタイム エラー (スクリプトの実行を妨げます) | ||||||||||||||||||||||||
2 | E_警告 | 実行時警告 (致命的ではないエラー) |
|
通常量
|
レポート | ||||||||||||||||||||||||
4
|
E_PARSE
|
解析エラー |
||||||||||||||||||||||||
8
|
E_通知 | 注 (問題になる場合もあれば、問題にならない場合もあります) | ||||||||||||||||||||||||
256 | E_USER_ERROR | ユーザー生成のエラー メッセージ。trigger_error() 関数によって生成されます | ||||||||||||||||||||||||
512 | E_USER_WARNING | ユーザー生成の警告。trigger_error() 関数によって生成されます | ||||||||||||||||||||||||
1024 | E_USER_NOTICE | ユーザー生成のアテンション。trigger_error() 関数によって生成されます | ||||||||||||||||||||||||
2048 | E_STRICT | 互換性と相互運用性に関するアドバイス | ||||||||||||||||||||||||
8191 | E_ALL | すべてのエラー、警告、提案 |