时间:2009-02-10 16:30:55

标签: php syntax

为什么我应该在我的php脚本中使用<?php而不是<?

10 个答案:

答案 0 :(得分:29)

避免短开标记的两个主要原因是

  1. 最大可移植性 - <?php适用于所有启用PHP的服务器,但可以禁用<?
  2. 它与XML前言的开头相同 - 可能导致解析或执行难题

答案 1 :(得分:7)

启动PHP有两种方法

<?php

<?

PHP还包括

<?=

但是这将打印出它后面的变量,因为它是echo的简写。

你应该使用&lt; ?php因为它兼容所有服务器类型。您可以将代码移动到新的托管解决方案或设置新的服务器默认值,并且可以禁用短名称。

答案 2 :(得分:5)

可以禁用短标记<?(和<?=)。长版<?php(以及<?= = <?php echo)无处不在。

我们可以讨论PHP团队决定使这样的事情可配置的意义,但重要的是,你不能在便携式代码中使用短标签。

答案 3 :(得分:3)

两者在语义上都是一样的。 <?只是完整语法的快捷方式。

答案 4 :(得分:3)

由于两个原因,我个人更喜欢关闭<?

  1. 许多大型PHP项目的PHP编码标准建议将其关闭
  2. 如果要生成XML文档,则会出现问题(xml文档以<?xml version="1.0" encoding="UTF-8" ?>开头)
  3. (奖金)<?php<?更具可读性和醒目可见性。

答案 5 :(得分:2)

为了向每个人解释不应该使用短标签,因为它们可能被禁用(或者甚至可能从未来的PHP版本中删除),不推荐使用短标签的主要原理是它们不是有效的XML“处理说明“而<?php标签是。因此,带有<?php ... ?>标记的PHP模板可以是有效的XML文档,而使用短标记的PHP模板则不是。

答案 6 :(得分:1)

应该注意的是,PHP的某些服务器配置不支持开箱即用的一个或另一个。例如,我的网络服务器不支持&lt;?但支持&lt;?php

答案 7 :(得分:1)

便携性论证都很好,但我会说是亵渎神明,并且如果你愿意,你应该继续使用短标签,除非你做的事情是真正广泛分发的(来源),或正在制作非常注重xml的东西。

a)我从未遇到过无法启用短标签的情况。通常它们默认处于启用状态。

b)在大多数情况下,<?不会与<?xml混淆,因为它们在堆栈的不同级别被解析。

c)短标签不那么突兀,因此会减少你的代码。我发现<?php echo<?=尤其如此。 (你可能会争辩说你通常应该避免使用其中任何一个,因为它可能意味着你正在编写意大利面条代码,但是来吧 - 这是php!)

当然,这一切都取决于你正在做什么样的项目,但对于一个基本的网站,我认为短标签根本不会伤害你。

答案 8 :(得分:0)

Wordpress Coding Standards表示只使用<?php。他们没有解释原因。

这可能是一个宗教问题。

答案 9 :(得分:0)

短格式<? / <?=语法的支持基于short_open_tag parameter in php.ini。如果您托管自己的代码库,则启用此功能非常简单。但是,在共享/托管Web主机上,您可能无法控制此设置。

因此,为了获得最大的可移植性,您应该使用长格式语法。