【问题标题】:<?php vs <? ...Does it matter? [duplicate]<?php 与 <? ...有关系吗? [复制]
【发布时间】:2010-12-08 06:00:19
【问题描述】:

可能重复:
Are PHP short tags acceptable to use?

<?php
    //Some code
?>

<?
    //Some code
?>

我知道第一种方式是 正确 方式,但 PHP 代码没有经过验证。那么,除了节省额外的输入和字节之外,这有关系吗?

更新 感谢您的回复...

  1. 我不知道它们被称为 短标签(因此我没有找到重复的 SO 问题)
  2. 我不知道有一个特定的服务器配置选项可以允许/禁止短标签。

再次感谢

【问题讨论】:

标签: php php-shorttags


【解决方案1】:

如果有人曾在禁用短标签的服务器上使用您的代码,它确实如此。我与他们所在的几台服务器一起工作。除此之外,没有。尽管出于上述原因,使用短版本会降低您的脚本的可移植性。这对您来说可能是也可能不是问题。

这完全是另一个问题,但相关。如果您尝试从 PHP 生成某些类型的文件(XML 是我最常出现的候选文件),那么短标签可能是个问题。例如,以下会导致 PHP 语法错误:

<?xml version="1.0" ?>

您必须改为在启用短标签的服务器上编写以下内容:

<?php echo '<?xml version "1.0" ?>'; ?>

啊!

【讨论】:

  • 短标签被禁用是不常见的。他们有没有解释过为什么禁用它(或者为什么不能启用它)?我想可能强制团队只使用&lt;?php 方式。
  • 我同意绝大多数人都启用了它们。但实际上,使用它们的唯一原因是懒惰。我更喜欢自己使用“长”版本。就个人而言,我通常在我的开发服务器上禁用它们以找出我使用的任何使用它们的第三方脚本。根据我相当普遍的经验,如果他们使用它,这通常不是关于脚本总体质量的一个好的第一个迹象(懒惰,不知道事情,不管它发生了什么)。
  • @Matthew 完全同意你的看法。
  • html 模板中的短标签 =$value?> 怎么样?非常方便! ;)
  • 我确实使用&lt;?=。也就是说,我宁愿放弃它,也不愿尝试用 xml 标头来捏造。当您写出应该有效的内容时会很烦人,但这并不是因为 PHP 解释器中的怪癖。 &lt;?xml != &lt;?php!
【解决方案2】:

如果您的项目可能部署在不同的服务器上(例如开源软件),最好始终使用&lt;?php

但是,如果您像我一样,始终争取最大的可移植性,请使用&lt;?php,即使您不相信您的软件会离开您的服务器。大多数服务器都启用了短标签。

但是,如果它们禁用了短标签,而您使用它们,您的 PHP 将暴露给全世界(如果在文档根目录下)。

【讨论】:

    【解决方案3】:

    没有区别,我认为这只是偏好问题,而且为什么重要?它只是另外 3 个字节。

    编辑:

    忘了说你必须在php.ini中启用速记

    【讨论】:

    • 这很重要,因为这是服务器配置的问题。我在一些无法运行第二个版本的服务器上工作。
    • 是的,忘了说你必须启用它。
    【解决方案4】:

    右括号不是强制性的

    【讨论】:

    • 当然,只有在 PHP 代码之后没有其他内容的情况下,这在这个问题中是未指定/无关的。
    • 这仅适用于文件中的最后一个 PHP 代码块。
    • 投了反对票,因为它错过了问题。
    【解决方案5】:

    在某些系统上,short_open_tags 的默认选项是关闭的,因此后者不起作用,而前者起作用,因此如果您使用第二个,它可能会完全破坏您的网站。就个人而言,我只是喜欢覆盖设置并使用第二个。

    【讨论】:

      【解决方案6】:
      <? ?>
      

      是短标签,如果短标签关闭,它将不起作用。

      【讨论】:

        猜你喜欢
        • 2020-05-08
        • 1970-01-01
        • 1970-01-01
        • 2023-04-06
        • 2011-10-19
        • 2013-10-22
        • 1970-01-01
        • 2013-10-24
        • 2020-12-29
        相关资源
        最近更新 更多