1

通常、PHP のプログラミングとテストを行っている開発サイクルでは、実行ごとに 1 つのエラーしか表示されません。

php.exe を使用するか、オンライン ツールpilliappまたは phpcodecheckerを使用して、構文エラーを確認できます。ただし、未定義変数などの実行時エラーは検出できません。

トレースにはXDebugを使用できますが、退屈です。

ブラウザですべてのPHPランタイムエラーを1回表示するにはどうすればよいですか?

したがって、ユーザーは控えめな方法で、すべてのばかげた問題を同時に処理できます。(論理エラーではありません)。

4

1 に答える 1

2

フォーラムや Q&A Web サイトは、学習のための優れたリソースです。

昨日、私はstackoverflow .comで質問をしました。この議論は、 PHPJavascriptを使用して PHP の実行時エラーの大部分を抑える新しい方法を作成するきっかけになりました。

多くの潜在的なランタイム エラーを含む PHP ソース コードがあるとします。そのため、HTML タグ内の次の行にコードを配置しました。たとえば、PHP コードを使用する必要がある最初の位置です。

 <script type="text/javascript">
 var nerrors = 0;               // PHP Errors count in Javascript

 function PHPErrors() {         // Javascript  Function that wraps the PHP Code
  <?php
               // MyErrorHandler is my function that my custom error handler
               // uses with error parameters in that given order.

     function myErrorHandler($errno, $errstr, $errfile, $errline) {
     echo "document.getElementById('PHPError').innerHTML += " . 
      "\"$errno: $errstr ($errline)<br>\";\r\n";        
     echo "nerrors = nerrors + 1;\r\n";
     return true;
 }
      // That's the line the set my custom new error-handling
      // disabling the default error handling
 $old_error_handler = set_error_handler("myErrorHandler");

      // Below random PHP code full of errors 
 $b = $a;                 // PHP Error 1
 $c = $a +1;              // PHP Error 2
 $d = $a + 1;             // PHP Error 3  
 $e = $_SESSION['glove'];  // PHP Error 4
?>
      // No PHP runtime error deserves a nice messagen
if (nerrors===0) {
   document.getElementById('PHPError').innerHTML =
                    "Well done! PHP without errors."; } 
}                        // End Javascript Function

このコードの後に​​、Javascript と PHP を自由に追加できます。最後に、HTML 本文内のいくつかの場所に、以下の 2 行を挿入します。

    <p id="PHPError"> </p>
    <button onclick="PHPErrors()">Show me all PHP runtime errors</button> 

このPHPページを閲覧すると、

エラーを表示するために押すボタン

最後にそれを押すと、すべての PHP ランタイム エラー メッセージが表示されます

8: Undefined variable: a (26)
8: Undefined variable: d (27)
8: Undefined variable: c (28)
8: Undefined index: glove (29)

または楽しい

Well done! PHP without errors.

明らかに、ボタンは必要なく、このコードを JavaScript の onload 関数内に含めることができます。

于 2013-01-16T12:29:00.313 に答える