😉
閉じタグに関するPHPの微妙な書き方2つ
こんにちは。今日は知ると少し残念な気持ちになりそうな閉じタグに関するPHPの書き方を二つ紹介します。
閉じタグ直前のコロンは省略可
普通はこう書くでしょうが、
with_semicolon.php
<?php
echo "hoge";
?>
↓これ、動きます。(閉じタグあり)
without_semicolon.php
<?php
echo "hoge"
?>
でも、↓これは動かない。(閉じタグ無し)
without_semicolon.php
<?php
echo "hoge"
閉じタグ"?>"にはセミコロンの機能があるみたいです。
でも、この利用法はあまり使わない印象です。
強いて言えば、使うのはインラインで一行で書く時、
どうしてもファイルを軽くしたい時とかでしょうか?
ファイル末の閉じタグは要らない
こっちは比較的有名だと思います。
以下は、閉じタグ以降のエンターがHTMLで出力されることになり出力と共存できないheader関数はエラーになります。
bad_close_tag_at_end.php
<?php
//閉じタグ以降のエンターに注目。
?>
下コードの様に上コードを呼び出すとエラーです。
caller.php
<?php
include("bad_close_tag_at_end.php");
header("location:https://www.google.com/");
exit; //念のためexitする。昔はheader以下の関数をすべて実行してから、
//headerを送っていたので。今は大丈夫かも。
下を呼び出すなら上手く行き、グーグルに無事いけます。
good_close_tag_at_end.php
<?php
//閉じタグが無いことに注目。
//これはエラーにならないです。
このことはクラス定義ファイルなどでよくやりがちです。
今日はここまで、お疲れ様でした!
Discussion