😉

閉じタグに関するPHPの微妙な書き方2つ

2021/11/09に公開

こんにちは。今日は知ると少し残念な気持ちになりそうな閉じタグに関する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