以下是官方文件提供的信息:
有四对不同的
可以是开始和结束标记
用于PHP。其中两个<?php ? >
And <script language="php"> </script>,
总是可用的。另外两个
是短标签和ASP风格标签,和
可以打开和关闭从
Php.ini配置文件。因此,
而有些人发现短标签和
ASP样式标签方便,它们都是
便携性较差,而且通常不是
推荐。
根据我的经验,大多数服务器都启用了短标记。打字
<?=
比打字方便多了
<?php echo
程序员的便利性是一个重要因素,那么为什么不推荐他们呢?
有人会问使用短标签的意义是什么。
打字更快
MDCore说:
<?=比输入<?php echo
是的,它是。你不必在整个脚本中键入7个字符* X次。
然而,当一个脚本需要一个小时,或10个小时,或更多的时间来设计、开发和编写,那么在脚本的整个过程中,这几秒钟没有在这里和那里输入那7个字符的时间又有什么关系呢?
相比之下,如果短标签没有打开,或正在打开,但更新或有人更改ini文件/服务器配置,可能会导致一些核心或所有脚本无法工作,其他可能性。
您获得的小好处并不能抵消潜在问题的严重性,即您的站点无法工作,或者更糟,只有部分无法工作,因此需要解决的问题令人头痛。
更容易阅读
这取决于熟悉程度。
我总是看到并使用<?php echo。所以当<?=并不难读,只是我不熟悉,所以不容易读。
如果前端和后端开发人员分开(就像大多数公司一样),那么前端开发人员是否会更熟悉这些模板?=等于“PHP打开标签和回声”?
我想说大多数人会觉得更合乎逻辑的答案更舒服。也就是说,一个明确的PHP打开标记然后发生了什么"echo" - <?php echo。
风险评估
问题=整个网站或核心脚本无法工作;
发生问题的可能性非常低+结果的严重程度非常高=高风险
结论
你可以在这里节省几秒钟,而不必输入几个字符,但为此冒了很大的风险,结果也可能会失去可读性。
前端或后端程序员熟悉<?=更容易理解<?php echo,因为它们是标准的php东西- standard <?PHP打开标签和众所周知的“echo”。
(即使是前端程序员也应该知道“echo”,否则他们根本不会在框架提供的任何代码上工作)。
然而相反的情况就不太可能发生了,有人不太可能从逻辑上推断出PHP短标记上的等号是“echo”。
有人会问使用短标签的意义是什么。
打字更快
MDCore说:
<?=比输入<?php echo
是的,它是。你不必在整个脚本中键入7个字符* X次。
然而,当一个脚本需要一个小时,或10个小时,或更多的时间来设计、开发和编写,那么在脚本的整个过程中,这几秒钟没有在这里和那里输入那7个字符的时间又有什么关系呢?
相比之下,如果短标签没有打开,或正在打开,但更新或有人更改ini文件/服务器配置,可能会导致一些核心或所有脚本无法工作,其他可能性。
您获得的小好处并不能抵消潜在问题的严重性,即您的站点无法工作,或者更糟,只有部分无法工作,因此需要解决的问题令人头痛。
更容易阅读
这取决于熟悉程度。
我总是看到并使用<?php echo。所以当<?=并不难读,只是我不熟悉,所以不容易读。
如果前端和后端开发人员分开(就像大多数公司一样),那么前端开发人员是否会更熟悉这些模板?=等于“PHP打开标签和回声”?
我想说大多数人会觉得更合乎逻辑的答案更舒服。也就是说,一个明确的PHP打开标记然后发生了什么"echo" - <?php echo。
风险评估
问题=整个网站或核心脚本无法工作;
发生问题的可能性非常低+结果的严重程度非常高=高风险
结论
你可以在这里节省几秒钟,而不必输入几个字符,但为此冒了很大的风险,结果也可能会失去可读性。
前端或后端程序员熟悉<?=更容易理解<?php echo,因为它们是标准的php东西- standard <?PHP打开标签和众所周知的“echo”。
(即使是前端程序员也应该知道“echo”,否则他们根本不会在框架提供的任何代码上工作)。
然而相反的情况就不太可能发生了,有人不太可能从逻辑上推断出PHP短标记上的等号是“echo”。
值得一提的是,从PHP 7开始:
短ASP PHP标签<%…%>消失了
短PHP标签<?如果short_open_tag设置为true,则>仍然可用。这是默认值。
从PHP 5.4开始,短打印标签<?=…?>总是启用的,不管short_open_tag设置如何。
摆脱第一个语言是件好事,因为它干扰了其他语言。
除了个人喜好,现在没有理由不使用短打印标签。
当然,如果您正在编写与PHP 5遗留版本兼容的代码,则需要坚持旧的规则,但请记住,PHP 5.6之前的任何东西现在都不受支持。
参见:https://secure.php.net/manual/en/language.basic-syntax.phptags.php
还要注意,上面的引用不鼓励使用第二个版本(<??>)因为它可能已经被禁用:
注意:
由于短标签可以被禁用,所以建议只使用正常标签(<?>和<?= ?>)以最大化兼容性。