在PHP中, 为什么</script>不产生语法解析错误

英文原文:In PHP, why does </script> not show a parse error?

中文译文:在PHP中, 为什么</script>不产生语法解析错误

PHP作为主流网站建设语言,在使用过程中有很多陷阱,需要程序员主意。

在PHP脚本中,如果写如下代码

<?php 
    </script>
?>

这个php脚本并没有提示任何错误,而是直接输出了 "?>"。感觉很不可思议,于是我们再写如下代码

<?php 
    </div>
?>

这次却提示解析错误,Parse error: syntax error, unexpected '<' in ... 

为什么第一次的</script>不提示错误呢?

这时我们需要再仔细阅读一下PHP的相关手册了 there are various ways of starting a block of PHP code:

可以在 PHP 中使用四对不同的开始和结束标记。其中两种,<?php ?> 和 <script language="php"> </script> 总是可用的。另两种是短标记和 ASP 风格标记,可以在 php.ini 配置文件中打开或关闭。尽管有些人觉得短标记和 ASP 风格标记很方便,但移植性较差,通常不推荐。

也就是所,php的标签有4中,而<script>也是其中之一,并且和<?php ?>一样,总是可用的,其他的两种需要在配置文件中打开。

  1. <? ... ?> (在配置文件中通过short_open_tag打开)
  2. <?php ... ?> 
  3. <script language="php"> ... </script> 
  4. <% ... %> (ASP风格标签,在5.3.0版中放弃使用)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值