70

それらは安全性において同等ですか?私は使用することを知らされました

<?=$function_here?>

安全性が低く、ページの読み込み時間が遅くなります。私はエコーを使用することに厳密に偏っています。

長所/短所は何ですか?

4

6 に答える 6

102

<?および<?=はショートオープンタグと呼ばれshort_open_tag、PHP 5.3以下では常に有効になるとは限りません(ディレクティブを参照)(ただし、PHP 5.4.0以降<?=は常に使用可能です)。

実際、PHP 5.3.0で提供されるphp.ini-productionファイルでは、デフォルトで無効になっています。

$ grep 'short_open' php.ini-production
; short_open_tag
short_open_tag = Off

したがって、配布したいアプリケーションでそれらを使用することはお勧めできません。それらが有効になっていないと、アプリケーションは機能しません。

<?php、反対側では、無効にすることはできません。したがって、書き込みに時間がかかる場合でも、これを使用するのが最も安全です。


短いオープンタグが必ずしも有効になっていないという事実を除けば、大きな違いはないと思います。

于 2009-09-06T20:22:46.397 に答える
31

エコーは一般的に使用する方が良いです...

  1. 優れたプログラミングスタイルをサポートします。
  2. php.iniではオフにできません(短いタグはオフにできます)
  3. 短いタグはPHPで削除されます6)

しかし、それらは一般的に同じです。参照:

  1. PHPの短いタグを使用できますか?
  2. PHPではエコーと印刷はどのように異なりますか?
于 2009-09-06T20:23:41.933 に答える
21

http://php.net/manual/en/language.basic-syntax.phpmode.phpの状態:

PHP 5.4以降では、設定に関係なく、短いエコータグが常に認識されて有効になりshort_open_tagます。

short_open_tagオフまたはオンはもう重要ではありません。

これで、心配することなく、次のようなタグをテンプレートに配置できます。

    <?= (($test) ? "val1" : "val2") ?>

現在は公式ですが、「ショートエコータグ」は「ショートタグ」とは大きく異なります。

于 2014-07-19T07:21:08.790 に答える
20

短いタグを使用することが良い考えであるかどうか、そしてそれが非推奨と見なされるべきかどうかについての半宗教的な議論全体とは別に、元の質問はそれらを使用するのがどれほど安全か危険かということでした。

簡単に言えば、それらをサポートしていないサーバーで短いタグを使用すると、PHPコードの一部が公開される可能性があり、これはセキュリティの脆弱性と見なされる可能性があります。

于 2010-11-19T09:25:39.547 に答える
5

PSRの別のソースを追加するだけです:http ://www.php-fig.org/psr/psr-1/

PHPコードは、longタグまたはshort-echoタグを使用する必要があります。他のタグバリエーションを使用してはなりません。

指定:

 <?php ?> and <?= ?>
于 2016-03-23T14:24:40.700 に答える
-5

<?=を使用して、システム管理者/ホストにshort_open_tagsをオンにするように依頼する必要があります。オフにする短所はなく、速度低下もありません。パーサーは<?インデックス内で<?phpを検索するのと同じ方法で、バイナリ検索(おそらく<?PHPは解析が低下するために遅くなります)。

また、すでにPHP 5.5では<?=がデフォルトでオンになり、長期的には<?=が優先されますが、<?phpechoは非推奨になります。

まだわからない場合..少しグーグルすると大いに役立ちます=D

于 2012-05-03T15:58:55.997 に答える