Ist es akzeptabel, PHP-Kurztags zu verwenden?
P粉882357979
2023-07-31 17:44:33
<p>Laut Informationen aus der offiziellen Dokumentation: </p>
<blockquote>
<p>In PHP stehen vier verschiedene Paare öffnender und schließender Tags zur Verfügung. Zwei Paare (<?php ?> und <script language="php"> </script>) sind immer verfügbar. Die anderen beiden Paare sind kurze Tags und Tags im ASP-Stil, die in der Konfigurationsdatei php.ini aktiviert und deaktiviert werden können. Obwohl einige Leute kurze Tags und Tags im ASP-Stil praktisch finden, sind sie weniger portierbar und im Allgemeinen nicht zu empfehlen. </p>
</blockquote>
<p>Meiner Erfahrung nach sind auf den meisten Servern Kurztags aktiviert. Geben Sie </p> ein.
<pre class="brush:php;toolbar:false;"><?=</pre>
<p>Bessere Eingabe</p>
<pre class="brush:php;toolbar:false;"><?php echo</pre>
<p>Bequemer. Die Bequemlichkeit des Programmierers ist ein wichtiger Faktor. Warum werden kurze Tags nicht empfohlen? </p>
我太喜欢<?=$whatever?>而不愿放弃它。我从来没有遇到过问题。我会一直使用下去,直到它给我带来麻烦。说真的,有85%的(我的)客户在很少的情况下可以访问php.ini来开启它们。其他15%使用主流的托管提供商,几乎所有的提供商都已经启用了它们。我喜欢它们。
必须清楚区分PHP的短标签(<?)和简写的echo标签(<?=)。
前者在PHP编码规范中被禁止使用,主要是出于常识考虑,因为如果你需要将代码移动到不支持短标签的服务器上(并且无法启用它),那么这会带来很多麻烦。正如你所说,很多共享主机支持短标签,但并不是所有的主机都支持。如果你想分享你的脚本,最好使用完整的语法。
而简写的echo标签<?=无法禁用,因此完全可以使用。
我同意<?比<?php对程序员来说更容易,但只要每次使用相同的形式,就可以进行批量查找和替换。
我不认为可读性是一个理由。大多数严肃的开发者都可以使用语法高亮选项。
正如ThiefMaster在评论中提到的,从PHP 5.4开始,<?= ... ?>标签在任何地方都被支持,无论短标签设置如何。这意味着它们在可移植代码中是安全使用的,但这也意味着对PHP 5.4+有依赖。如果你想支持5.4之前的版本,并且不能保证短标签的使用,仍然需要使用<?php echo ... ?>。
此外,你需要知道,在PHP 7中,ASP标签<%、%>、<%=和script标签被移除。因此,如果你希望支持长期可移植的代码,并且希望切换到最现代的工具,请考虑更改代码的这些部分。