PHPの開始タグと終了タグについて
参考URL
結論
- 純粋なPHPのみのコードの場合は開始タグ <?php のみが良い、終了タグ ?> は予期せぬ不具合の元なので記載しない
- echoが省略されている<?= ?>はPHP5.4から常に有効となっている
- 基本は上記の2パターンのみを使用、しかしXMLやXHTML内では標準規格に従った方がいいことから <?php ?>を使用する
以下は結論に至るまでのメモです。
一般的な開始タグと終了タグ
- 開始:<?php
- 終了:?>
→ファイルの内容が全てPHPのコードである場合、終了タグは書かないことを推奨している。
ファイル全体が純粋な PHP コードである場合は、ファイルの最後の終了タグは省略するのがおすすめです。 終了タグの後に余分な空白や改行があると、予期せぬ挙動を引き起こす場合があるからです。 余分な空白や改行のせいで PHP が出力バッファリングを開始し、その時点の内容を意図せず出力してしまうことになります
省略タグその1※非推奨
- 開始:<?
- 終了:?>
→一応使えるが、php.iniの書き換えたりオプションをつけてconfigureしたりする必要があることから推奨しない。
PHP では、短い形式の開始タグ <? も使えます (しかしこれはおすすめしません。というのも、この形式のタグは php.ini で short_open_tag を有効にするか --enable-short-tags オプションつきで PHP を configure した場合でないと使えないからです)。
省略タグその2
- 開始:<?=
- 終了:?>
→echoを短縮している開始終了タグ。
<?= '文字列を表示' ?> は <?php echo '文字列を表示' ?> と同じ。
PHP5.4以降、この省略タグはphp.iniなどの設定に関わらず常に有効になったとのこと。
その他のタグについて
その他に、PHPには <script language="php"></script> や <%, %> や <%= のASPタグが存在しますが、これらはPHP7.0.0より削除されたそうです。
よって互換性を考えると<?php ?>と<?= ?>の2種類のみの使用が推奨されています。
PHP 7 では、ASP タグや <script language="php"> タグが使えなくなりました。これから PHP のコードを書くときには、 互換性を考慮して <?php ?> や <?= ?> だけを使うことを推奨します。
しかし、XMLやXHTMLに埋め込む際には<?php ?>だけ使用した方が良いとのことでした。
注意:
さらに注意しなければならないことがあります。PHP コードを XML や XHTML に 埋め込む場合には、標準規格に従うために <?php ?> タグを使用する 必要があるでしょう。