パソコン関連の書籍等を読んで試したりしながらアウトプットしまくります。

アウトプットしながら学ぶ

PHP Web WordPress

PHPの終了タグ「?>」がないのは間違い?書かないのが正しい?

投稿日:

最近、PHPのソースコードを読むことが多いです。
PHPといえば、
となっているものだと思い込んで読んでいたのですが、
どう見ても終了タグ「?>」がついていないファイルを見かけます。

そして、終了タグがなくても正常に動作しているようです。
PHPのことをほとんど理解していないので、試しに、Kindle unlimitedで「グーテンベルク時代のWordPressノート テーマの作り方(入門編) (EP NOTE SERIES)」という本を読み始めました。

「functions.php」のサンプルファイルを見ると、終了タグ「?>」がありません。
ただの間違いなのかと思って本を読み進めて見たところ、86ページに以下の記述がありました。

functions.phpの記述について

functions.phpに追加する設定はPHPで記述します。
PHPのコードは基本的にの中に書きますが、
functions.phpでは不要なトラブルが発生するため、
閉じる「?>」は記述しないことになっています。

なるほど、「functions.php」には「?>」は記述しないことになっているのですねと思ったのですが、
イマイチ納得できません。

スポンサーリンク




「functions.php」以外にも、終了タグがないファイルを見て頭を悩ませたことがあるからです。

PHPの終了タグ「?>」を書かなくても良い?

どうやら、ファイルの中身がPHPだけの場合、終了タグ「?>」を書かなくても良いようです。
さらにいうと、書いてはいけない、書くとトラブルが発生することすらあるとのことです。

終了タグ「?>」を書くと問題が発生するバターン

「?>」直後に1個だけ改行がある場合はもんだいありませんが、
その後ろに余分な改行があると、「?>」から2個目の改行以降は、HTMLにおいて半角スペースと認識されます。
なので、意図しないスペースが表示されたり、他のファイルから参照するときに、
余分な半角スペース(=改行)の存在により、誤作動を引き起こしたり、作動しなくなったりします。

そのため、純粋にPHPだけでできてて、他のファイルから参照されるファイルに関しては、終了タグをつけてはいけません。
そもそも、純粋なPHPのファイルには終了タグは不要なので、つけないということが正解となります。

PHPの終了タグ「?>」を書かないといけない時はあるの?

HTMLファイルなどの途中にPHPを書く場合は終了タグが必要です。







-PHP, Web, WordPress

Copyright© アウトプットしながら学ぶ , 2024 AllRights Reserved Powered by AFFINGER4.