我正在运行以下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 。