web-dev-qa-db-ja.com

PHP echo vs PHP短いタグ

安全性は同等ですか?私は

<?=$function_here?>

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

長所/短所は何ですか?

60
homework

<?および<?=は短いオープンタグと呼ばれ、常に有効になっているわけではありません( 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(反対側)を無効にすることはできません。したがって、書き込みが長くても、これを使用するのが最も安全です。


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

96
Pascal MARTIN

エコーは、一般的に使用するのに優れています...

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

しかし、それらは一般的に同じです。こちらもご覧ください:

  1. Are PHP使用できる短いタグ?
  2. PHPではechoとprintはどう違うのですか?
32
carl

短いタグを使用することは良いアイデアであるかどうか、また非推奨と見なすべきかどうかに関する半宗教的な議論のほかに、元の質問は、使用する安全性に関するものでした。

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

19
Frank

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

PHP 5.4で始まる、短いエコータグは、short_open_tag設定。

short_open_tagオフまたはオンは関係ありません。

そのため、心配することなく、テンプレートに次のようなタグを挿入できます。

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

現在は公式です。「短いエコータグ」は「短いタグ」とは非常に異なるものです。

11
Blouarf

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

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

指定:

 <?php ?> and <?= ?>
4
leopold

なぜ彼らは単に短いオープンタグをオフにしてデフォルトで有効にするオプションを削除しないのですか?.

これは、PHPによる非常に危険な動きです。その理由は、短いタグを含む既存のコードをPHP6サーバーに配置し、誰かがそのページを表示すると、ブラウザーに表示される生のコードがダウンロードされるためです。これにより、PHPが真剣に殺される可能性があります。

0
Ritey