PHP では、なぜ解析エラーが表示されないのでしょうか? 質問する

PHP では、なぜ解析エラーが表示されないのでしょうか? 質問する

私は以下を実行していましたPHP のコード:

<?php 
    </script>
?>

解析エラーはなく、出力は?>」 ()。

同様のケースでは解析エラーが発生します:

<?php 
    </div>
?>

解析エラー: 構文エラー、予期しない '<' が ... にあります

なぜ<?php </script> ?>同じエラーが出ないのでしょうか?

ベストアンサー1

これはきっとPHPコードのブロックを開始するにはさまざまな方法があります:

  • <? ... ?>(として知られているshort_open_tag

  • <?php ... ?>(実際は標準です)

  • <script language="php"> ... </script>(非推奨)

  • <% ... %>(5.3.0 以降は非推奨となり、ASP スタイルのタグは削除されました)

どうやら、PHP ブロックをある方法で開き、別の方法で閉じることができるようです。知りませんでした。

つまり、コードでは、 を使用してブロックを開きました<?が、PHP はそれ</script>をクローザーとして認識します。何が起こったか:

<?php       <----- START PHP
</script>   <----- END PHP
?>          <----- JUST GARBAGE IN THE HTML

おすすめ記事