sayosigureのブログ

自分用の覚え書き。ほぼPHP、極稀にJavaも書く。

PHPの開始タグと終了タグについて

参考URL

結論

  • 純粋なPHPのみのコードの場合は開始タグ <?php のみが良い、終了タグ ?> は予期せぬ不具合の元なので記載しない
  • echoが省略されている<?= ?>はPHP5.4から常に有効となっている
  • 基本は上記の2パターンのみを使用、しかしXMLXHTML内では標準規格に従った方がいいことから <?php  ?>を使用する


以下は結論に至るまでのメモです。

一般的な開始タグと終了タグ

  • 開始:<?php
  • 終了:?>

→ファイルの内容が全てPHPのコードである場合、終了タグは書かないことを推奨している。

ファイル全体が純粋な PHP コードである場合は、ファイルの最後の終了タグは省略するのがおすすめです。 終了タグの後に余分な空白や改行があると、予期せぬ挙動を引き起こす場合があるからです。 余分な空白や改行のせいで PHP が出力バッファリングを開始し、その時点の内容を意図せず出力してしまうことになります

http://php.net/manual/ja/language.basic-syntax.phptags.php

 

省略タグその1※非推奨

  • 開始:<?
  • 終了:?>

→一応使えるが、php.iniの書き換えたりオプションをつけてconfigureしたりする必要があることから推奨しない。

PHP では、短い形式の開始タグ <? も使えます (しかしこれはおすすめしません。というのも、この形式のタグは php.ini で short_open_tag を有効にするか --enable-short-tags オプションつきで PHP を configure した場合でないと使えないからです)。

http://php.net/manual/ja/language.basic-syntax.phptags.php

 

省略タグその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 ?> や <?= ?> だけを使うことを推奨します。

http://php.net/manual/ja/language.basic-syntax.phpmode.php

 

しかし、XMLXHTMLに埋め込む際には<?php ?>だけ使用した方が良いとのことでした。

注意:
さらに注意しなければならないことがあります。PHP コードを XMLXHTML に 埋め込む場合には、標準規格に従うために <?php ?> タグを使用する 必要があるでしょう。

http://php.net/manual/ja/language.basic-syntax.phpmode.php