PHP のスクリプトファイルの末尾の終了タグは書かない

 PHP のマニュアルにも書かれていますが、一般的に PHP のスクリプトファイルの末尾の終了タグは書きません。終了タグの後に何も書かなければ、書いても問題ありませんが、終了タグの後に空行があったりすると、思わぬ副作用が出るので、ファイルの末尾の終了タグは普通は書きません。と言うか、書いてはいけません。

 PHP の解説などで、動作確認の際に phpinfo() で確認する時、次のような例を見かけます。

<?php
  phpinfo();
?>

 これだけで問題になることはないでしょう。しかし、末尾の ?> は書かなくて良いことになっています。これは次のようにすべきかもしれません。

<?php
  phpinfo();

 とはいえ、初心者がこれを覚えてしまうと終了タグを書く癖がつかないので悩んでしまいます。きちんと終了タグは必要だと説明し、例外としてファイル末尾の終了タグは省略すると説明するべきでしょう。

 開始タグを書くと終了タグも書きたくなりますが、ファイル末尾の終了タグだけは書かないようにします。もちろん、途中の終了タグは書かなければいけません。

 PHP は、<?php と ?> で囲まれた範囲以外はそのまま出力しますが、処理としては、print 命令で出力するのと同じです。<?php と ?> の間の空行は無視されますが、外側の空行は print されてしまいます。

 予想外のことが置きないように、スクリプトファイルの末尾の終了タグは書かないようにしましょう。

未分類

Posted by sirius