是PHP中的短标记好习惯吗?

时间:2015-04-15 13:28:14

标签: php

如果我启用短标签= true,那么我可以使用如下

<?=$variableName ?>

而不是

<?php echo $variableName ?>

我有以下问题:

  1. 这是好的做法吗?
  2. 是否有服务器依赖?
  3. 所有开放源代码和框架支持吗?

4 个答案:

答案 0 :(得分:4)

短标记<? doSomething(); ?>被认为是一种不好的做法,因为它们不符合XML标准......您是否关心它是另一个问题。

短回声<?= $myString ?>不是一个坏习惯,它不是最好的。 PHP是一个模板引擎,但 很多 更好的引擎可用(TwigMustacheSmarty等。大多数框架都包含自己的模板引擎,因此不需要使用短标签。

直到并包括PHP 5.3,这些类型的标签被认为是同一个东西。从PHP 5.4开始,它们已被分离出来,并且在没有打开enable-short-tags的情况下允许短回声。由于不再支持PHP 5.3,唯一的问题是如果您被迫使用不受支持的版本,这显然有它自己的含义。 :)

答案 1 :(得分:3)

  1. 这本身并不差。新版本的PHP已启用,但旧版本可能启用也可能不启用。因此,如果您希望每个人都能够运行您的代码,那么您应该使用<?php。如果你不关心PHP的旧版本(即没有向后兼容性问题),那么......按你的意愿做。

  2. 没有服务器依赖项。你只需要启用它。

  3. 框架通常有贡献者指南。但是,您个人使用哪一个与框架无关;如果它被启用,则与它有关。

答案 2 :(得分:1)

  1. 这不是一个好习惯。为什么我这样说是因为假设您想将代码推送到生产中并且您正在使用共享主机。在PHP 5.4.0上面默认启用php短标签。如果共享主机使用较旧的PHP版本,该怎么办?某些共享主机您无法覆盖php.ini设置。如果你想使用php短标签,你必须在php.ini上启用它。请参阅以下链接。 PHP短标记也可能与XML代码冲突。

    http://php.net/manual/en/ini.core.php#ini.short-open-tag

  2. 无服务器依赖

  3. 完全不依赖于框架。

答案 3 :(得分:0)

要100%确定在您的代码可能运行的所有服务器上正确打印变量,请使用<?php echo $variableName; ?>。我个人总是使用这种方法。

但是,如果你正在处理一个个人项目或一个简单的项目,你知道你可以访问php.ini,或者你不打算转移到另一台服务器,那么你可以安全地使用它。

另外,PHP 5.4及更高版本默认允许<?=,这意味着所有当前支持的PHP版本都支持此功能。关于short_open_tag来自php.net

  

此指令也影响了PHP 5.4.0之前的简写<?=,它与<? echo相同。使用此快捷方式需要启用short_open_tag。自PHP 5.4.0起,<?=始终可用。

简而言之,回答你的三个问题:

  1. 这是好习惯吗? 没有
  2. 是否有任何服务器依赖? 是(需要在服务器上启用它)
  3. 所有开源和框架都支持此功能? 不可能为所有人说话。使用完整
  4. 的另一个好理由

    但如上所述,如果您只在支持PHP版本的服务器上运行代码,那么您可以安全地使用它。