使用PHP短標籤是否可接受?
P粉882357979
2023-07-31 17:44:33
<p>根據官方文件的資訊:</p>
<blockquote>
<p>PHP中有四對不同的開閉標籤可以使用。其中兩對(<?php ?>和<script language="php"> </script>)總是可用。另外兩對是短標籤和ASP風格標籤,可以在php.ini設定檔中開啟和關閉。儘管有些人認為短標籤和ASP風格標籤很方便,但它們的可移植性較差,一般不建議使用。 </p>
</blockquote>
<p>根據我的經驗,大多數伺服器都啟用了短標籤。輸入</p>
<pre class="brush:php;toolbar:false;"><?=</pre>
<p>比輸入</p>
<pre class="brush:php;toolbar:false;"><?php echo</pre>
<p>更方便。程式設計師的方便性是一個重要因素,那為什麼不建議使用短標籤呢? </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標籤被移除。因此,如果你希望支援長期可移植的程式碼,並且希望切換到最現代的工具,請考慮更改程式碼的這些部分。