时间:2010-07-27 13:35:30

标签: php security

  

可能重复:
  Are PHP short tags acceptable to use?
  What does “<?=” mean when seen in PHP

使用<? ?>表示php块或使用<?php ?>有什么不同吗?

如果没有,为什么有人会使用<?php

图。文件扩展名.php会提供有关您正在查看的代码类型的大量信息。

8 个答案:

答案 0 :(得分:11)

第一个叫做短开标签,第二个是安全的开启和关闭标签。 您可以使用short_open_tag设置在 php.ini 中启用/停用短开标签。

应避免使用短标签,请查看:

PHP Short Open Tag: Convenient Shortcut or Short Changing Security?

答案 1 :(得分:6)

必须将服务器配置为使用<?,因此出于可移植性原因,最好使用<?php

从手册(http://www.php.net/manual/en/language.basic-syntax.phpmode.php):

  

有四对不同的   打开和关闭标签,可以   用于PHP。其中两个,   而且,   随时可用。另外两个   是短标签和ASP样式标签,和   可以打开和关闭   php.ini配置文件。因此,   有些人发现短标签   ASP风格标签方便,它们是   便携性较差,一般不会   推荐使用。

答案 2 :(得分:3)

始终可以使用

<?php<?只能在short_open_tag指令开启时使用。

  

short_open_tag 告诉PHP是否应该允许PHP的开放标记的缩写形式(<? ?>)。如果要将PHP与XML结合使用,可以禁用此选项以使用<?xml ?>内联。否则,您可以使用PHP打印它,例如:<?php echo '<?xml version="1.0"?>'; ?>。此外,如果禁用,则必须使用PHP开放标记的长格式(<?php ?>)。

     
    

注意:此指令也会影响速记<?=,与<? echo相同。使用此快捷方式需要启用short_open_tag。

  
     

- Description of core php.ini directives

正如其他人所提到的,这个指令经常被关闭,所以出于可移植性的原因,我更喜欢使用<?php ?>。如果这不是一个问题,除了如果打开指令你也可以使用<?=简写内容之外,应该没有太大区别。

答案 3 :(得分:1)

我从未遇到过这个问题,但是当转移到不同的服务器时,对<? ?>的支持是不稳定的。为了清晰和一致,我更愿意坚持<?php ?>

答案 4 :(得分:1)

在开发用于重新分发或在不受您控制的PHP服务器上部署的应用程序或库时,应避免使用短标记<? ?>,因为目标服务器上可能不支持短标记。对于便携式可再发行代码,请确保不要使用短标签。

并且还要注意,如果要在PHP或XHTML中嵌入PHP,则需要使用<?php ?>标记来保持符合标准。

答案 5 :(得分:1)

始终使用<?php ?>,因为<? ?>

  • 将无法在即将推出的PHP版本中使用
  • 可以与XML定义混合使用。 (XML始终以<?xml ...
  • 开头 许多共享主机站点上未启用

答案 6 :(得分:0)

短标签<? ?>,仅适用于较旧的php版本。

答案 7 :(得分:-1)

语言没有区别,但许多商店更喜欢使用<?php,因为简单的<?开头标记可以在XML文件中找到,这可能会导致解释器混淆。 / p>

编辑:我认为这仍然是一个问题:http://terrychay.com/article/short_open_tag.shtml