在 PHP 中,为什么不</script>显示解析错误?



我正在运行以下PHP代码:

<?php 
    </script>
?>

没有解析错误,输出为" ?>"(示例)。

在类似情况下,我确实会有解析错误:

<?php 
    </div>
?>

解析错误:语法错误,意外'&lt;'在...

为什么<?php </script> ?>不给出相同的错误?

这必须是因为有多种启动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

在PHP中,您可以使用script标签打开PHP块。

因此您可以使用

<script language="php">
    echo 'hello world';
</script>

因此,在您的示例中,您将普通的打开标签<?php与CLING标签</script>混合在一起。因此,解析器假定关闭脚本标签后的所有文本都是正常的HTML

从html 。

中阅读更多信息

相关内容

  • 没有找到相关文章

最新更新