什么是「;“正确”;如何启动和关闭PHP语句?

什么是「;“正确”;如何启动和关闭PHP语句?,php,Php,以下PHP变体是否存在任何差异或相关风险 <? echo "hello world!"; ?> <?php echo "hello world!"; ?> <?="hello world!"?> 另外,是否有必要关闭所有带有?>的脚本。区别在于,某些服务器可能通过禁用了第一个和最后一个示例。因此,如果您希望代码尽可能可移植,那么当您不控制宿主时,应该使用完整的可移植性。例如,当我编写了一些PHP程序,这些程序是在我大学的主机上托管的,它们工作得很好,

以下PHP变体是否存在任何差异或相关风险

<? echo "hello world!"; ?>

<?php echo "hello world!"; ?>

<?="hello world!"?>


另外,是否有必要关闭所有带有
?>

的脚本。区别在于,某些服务器可能通过禁用了第一个和最后一个示例。因此,如果您希望代码尽可能可移植,那么当您不控制宿主时,应该使用完整的可移植性。例如,当我编写了一些PHP程序,这些程序是在我大学的主机上托管的,它们工作得很好,直到它们更改了配置,不允许使用它们破坏了一堆页面的语法


即使它在当时起作用,如果您无法控制主机,也无法保证。

短开放标签。经常有人提出,此选项可能未启用。我从未见过这种情况,但我想这是可能的。您可能需要移动主机提供商或其他东西。不过,一般来说,我只使用简短的形式。如果我需要更改它,那么这是一个相当简单的搜索和替换更改 更重要的是,您编写的PHP需要多长时间可移植,而不仅仅是在特定的应用程序上工作


唯一需要考虑的(imho)是XML处理指令,如果您输出XHTML,这可能会成为一个问题,尽管我从来没有看到过这样做的理由,而不是严格的或过渡的HTML。

因此,如果您知道服务器的功能,使用哪一个并不重要?是否有理由禁用其他两个示例,Paolo指出,当你把代码移植到不同的系统时,你需要考虑它们的配置。@彼得:一些其他的语言/库使用标签,所以禁用它们会使PHP不受影响。我已经有一个托管提供商决定关闭短标签(没有通知),将我的一个旧项目作为一堆文本文件保留在普通视图中。所有敏感的东西都在Webroot之外(当然),但我肯定会称之为安全风险+1因为我同意你的所有观点,但是,我必须做尽职调查,并列出人们声称不使用短标记是最佳做法的原因。@Paolo:好吧,这可以归结为选项可能被禁用和XML PI。这是一个合理的问题和合理的立场,永远不要使用简短的形式。克莱特斯:是的,我太爱它了。大家一致认为我总是倾向于使用它,这似乎很奇怪