Php-bugs-debugging

提供:Dev Guides
移動先:案内検索

PHP-バグのデバッグ

プログラムが初めて正しく動作することはめったにありません。 プログラムでは、PHPインタープリターがエラーメッセージを生成する原因となる多くのことが起こります。 これらのエラーメッセージの送信先を選択できます。 メッセージは、他のプログラム出力とともにWebブラウザーに送信できます。 Webサーバーのエラーログに含めることもできます。

ブラウザにエラーメッセージを表示するには、 display_errors 設定ディレクティブを On に設定します。 Webサーバーのエラーログにエラーを送信するには、 log_errors をOnに設定します。 両方の場所にエラーメッセージが必要な場合は、両方をオンに設定できます。

PHPは、特定のタイプのエラーのみが報告されるように error_reporting の値を設定するために使用できるいくつかの定数を定義します:E_ALL(厳密な通知を除くすべてのエラー)、E_PARSE(解析エラー)、E_ERROR(致命的なエラー)、E_WARNING(警告)、E_NOTICE(通知)、およびE_STRICT(厳密な通知)。

PHPプログラムを作成する際には、 BBEditEmacs などのPHP対応エディターを使用することをお勧めします。 これらのエディターの特別な特殊機能の1つは、構文の強調表示です。 プログラムのさまざまな部分の色が、それらの部分が何であるかに基づいて変化します。 たとえば、文字列はピンク、ifやwhileなどのキーワードは青、コメントは灰色、変数は黒です。

もう1つの機能は、引用符とブラケットのマッチングです。これにより、引用符とブラケットのバランスをとることができます。 }などの終了区切り文字を入力すると、エディターは一致する開始\ {を強調表示します。

プログラムのデバッグ中に確認する必要がある次のポイントがあります。

  • セミコロンの欠落-すべてのPHPステートメントはセミコロン(;)で終わります。 PHPは、セミコロンに達するまでステートメントの読み取りを停止しません。 行の終わりでセミコロンを省略すると、PHPは次の行のステートメントを読み続けます。
  • 十分でない等号-比較ステートメントで2つの値が等しいかどうかを尋ねる場合、2つの等号(==)が必要です。 1つの等号の使用はよくある間違いです。
  • ミススペルされた変数名-変数のスペルを間違えた場合、PHPはそれを新しい変数として認識します。 要確認:PHPにとって、$ testは$ Testと同じ変数ではありません。
  • ドル記号の欠落-変数名にドル記号が欠落しているのは本当に見にくいですが、少なくとも通常はエラーメッセージが表示されるため、どこで問題を探すべきかがわかります。
  • 厄介な引用-引用が多すぎる、少なすぎる、または間違った種類の引用がある場合があります。 したがって、引用符のバランスの取れた数を確認してください。
  • 欠落している括弧と中括弧-それらは常にペアである必要があります。
  • 配列インデックス-すべての配列は1ではなくゼロから開始する必要があります。

さらに、すべてのエラーを適切に処理し、すべてのトレースメッセージをシステムログファイルに送信して、問題が発生した場合にシステムログファイルに記録され、その問題をデバッグできるようにします。