安全性は同等ですか?私は
<?=$function_here?>
安全性が低く、ページの読み込み時間が遅くなること。私はエコーの使用に厳密に偏っています。
長所/短所は何ですか?
<?
および<?=
は短いオープンタグと呼ばれ、常に有効になっているわけではありません( 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
(反対側)を無効にすることはできません。したがって、書き込みが長くても、これを使用するのが最も安全です。
短いオープンタグが必ずしも有効になっているわけではないという事実を除けば、大きな違いはないと思います。
エコーは、一般的に使用するのに優れています...
しかし、それらは一般的に同じです。こちらもご覧ください:
短いタグを使用することは良いアイデアであるかどうか、また非推奨と見なすべきかどうかに関する半宗教的な議論のほかに、元の質問は、使用する安全性に関するものでした。
簡単に言えば、サポートしていないサーバーで短いタグを使用すると、PHPコードの一部が公開され、セキュリティの脆弱性と見なされる可能性があります。
http://php.net/manual/en/language.basic-syntax.phpmode.php 状態:
PHP 5.4で始まる、短いエコータグは、
short_open_tag
設定。
short_open_tag
オフまたはオンは関係ありません。
そのため、心配することなく、テンプレートに次のようなタグを挿入できます。
<?= (($test) ? "val1" : "val2") ?>
現在は公式です。「短いエコータグ」は「短いタグ」とは非常に異なるものです。
PSRの別のソースを広告するだけ: http://www.php-fig.org/psr/psr-1/
PHPコードでは、長いタグまたは短いエコータグを使用する必要があります。他のタグバリエーションを使用してはなりません。
指定:
<?php ?> and <?= ?>
なぜ彼らは単に短いオープンタグをオフにしてデフォルトで有効にするオプションを削除しないのですか?.
これは、PHPによる非常に危険な動きです。その理由は、短いタグを含む既存のコードをPHP6サーバーに配置し、誰かがそのページを表示すると、ブラウザーに表示される生のコードがダウンロードされるためです。これにより、PHPが真剣に殺される可能性があります。