36

公式ドキュメントでさえ、PHP の「短いタグ」( <? /*...*/ ?>) は「悪い」ものであると説明していました。ただし、PHP 5.4 以降では、設定に関係なく、echoバラエティ<?= /*...*/ ?>は永続的に有効になりshort_open_tagます。

変更点

以前は、共有ホスティング プラットフォームで が有効になっているかどうかが予測できないという理由だけで落胆していたとしてもshort_open_tag、ホストの一部のサブセットが PHP 5.4 を実行するという理由だけで、その議論がなくなるわけではありませんか?

おそらく、この言語への変更は、「短いタグ」を避けるべきであるという推奨事項の変更を本質的に意味するものではありませんが、問題が発生した場合、PHP 開発者はもはやそれらを「嫌う」ことはないように思われるので、多くの。右?

現時点で導き出せる唯一の論理的結論は、PHP 5.4 でのこの変更の導入には何らかの客観的な根拠があるに違いないということです。

それは何ですか?

4

4 に答える 4

43

PHP 5.4 以降、短い開始タグが常に有効になっているわけではありません。ドキュメントでは、短いエコー タグについて説明しています。これは別のことです。(短いオープン タグは<?スタイル タグ、短いエコー タグは<?=スタイル タグで、echo-ing 用です)。

では、なぜそれらがデフォルトで有効になっているのでしょうか? まあ、そこにはたくさんのスクリプトがあり、<?= $somevar ?>代わりに使用すると便利です<?php echo $somevar ?>。また、短いエコー タグは短い開始タグほど悪くないため、短いエコー タグを常に有効にすることにしました。なぜなら、(フレームワークと CMS-es の) 開発者はそれらを当てにできるからです (というか、PHP 5.4 が主流になったとき)。

ただし、短い開始タグはphp.iniの設定の影響を受けます。short_open_tag

于 2013-01-07T00:46:29.163 に答える
4

ショート エコー タグ ( <?=) のみが永続的に有効になり、ショート オープン タグ ( ) は有効になりません<?。これは、HTML テンプレート (またはその他のビュー テンプレート) を作成するときに、短い echo タグが非常に便利であり、それがなければ (<?php echo $var; ?>単に の代わりに<?= $var ?>) もっと多くのことを書かなければならないからです。

于 2013-01-07T00:47:29.093 に答える
2

注: PHP 5.4 以降<?=では、short_open_tag の設定に関係なく、短い echo タグが常に認識され、有効になります。

これが言っていることは、それ<?=は常に有効であり、そうではないということだけです<?

于 2013-01-07T00:45:40.940 に答える
2

これは、< ?が XML ドキュメントで使用されており、short_open_tags を有効にすると XML コードでエラーが発生するためです。しかし、< ?=同様に< ?phpXMLの開始タグではなく、安全に使用できます。

于 2013-11-12T13:09:48.177 に答える