[解決済み] PHPのショートタグは使ってもいいのでしょうか?
質問
以下はその情報です。 公式ドキュメントによると :
には4種類のペアがあります。 開始タグと終了タグ は PHP で使用されます。そのうちの2つは
<?php ?>
と<script language="php"> </script>
, は常に利用可能です。他の2つの はショートタグとASPスタイルタグであり はオン・オフが可能です。 php.ini 設定ファイル。このように ショートタグと ASPスタイルタグは便利な反面 移植性が低く 一般に 推奨 .
私の経験では、ほとんどのサーバーは する は、ショートタグが有効になっています。タイピング
<?=
を入力するよりもはるかに便利です。
<?php echo
プログラマの利便性は重要な要素なので なぜ は推奨されないのでしょうか?
解決方法は?
サポートされていないサーバーにコードを移動する必要がある場合(そしてそれを有効にすることができない場合)、面倒なことになるので、推奨されません。おっしゃるとおり、多くの共有ホストでは する はshorttagsをサポートしていますが、quot;lots"がすべてではありません。スクリプトを共有したいのであれば、完全な構文を使用するのがベストです。
ということに同意します。
<?
と
<?=
よりもプログラマに負担をかけない。
<?php
と
<?php echo
しかし、毎回同じ形式を使用する限り、一括して検索と置換を行うことは可能です(スペースを挟まないように(例.
<? php
または
<? =
)
読みやすさを理由にするのは全く納得がいきません。まじめな開発者の多くは、シンタックスハイライトという選択肢を用意しています。
ThiefMasterがコメントで触れているように。
PHP 5.4時点では
<?= ... ?>
タグは、shorttagsの設定に関係なく、どこでもサポートされています。
. これは、移植可能なコードで安全に使用できることを意味しますが、 PHP 5.4 以降に依存することを意味します。5.4 より前のバージョンをサポートしたいが、shorttags が使えない場合は
<?php echo ... ?>
.
また ASP タグ <% , %> , <%= , および script タグは PHP 7 から削除されました。 . ですから、もしあなたが長期的にポータブルなコードをサポートし、最新のツールに切り替えたいのであれば、コードのその部分を変更することを検討してください。
関連
-
[解決済み】Weird PHP error: 'Can't use function return value in write context'.
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] PHPでHTML/XMLをパースして処理する方法とは?
-
[解決済み] どのような場合に '$this' よりも 'self' を使うべきですか?
-
[解決済み] PHPのstartWith()関数とendsWith()関数
-
[解決済み] PHPでパスワードをハッシュ化するためにbcryptを使用するにはどうすればよいですか?
-
[解決済み] PHPのショートタグを有効にするには?
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Weird PHP error: 'Can't use function return value in write context'.
-
[解決済み】phpのob_start()の使い道は?
-
[解決済み] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given [重複] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given.
-
[解決済み】PHP定数「PHP_EOL」はいつ使うの?
-
[解決済み】Phpのincludeが機能しない? 関数がincludeされない
-
[解決済み】「Fatal error: Class 'MySQLi' not found "を解決するには?
-
[解決済み】mysqli_select_db()は、パラメータ1がmysqliであることを期待し、文字列が与えられる。
-
[解決済み】file_get_contents( )が動作しない。
-
[解決済み】/var/www/htmlとは何ですか?[クローズド]
-
[解決済み] mysqli_fetch_assoc() は、パラメータ 1 が mysqli_result であることを期待し、boolean が与えられる [重複] 。