SOFTELメモ

Softel Inc.

HTMLとphpが混在しているソースのインデントのつけ方の例

問題

phpのプログラムを書いていると、画面のところで、phpとHTMLが混在する状況が発生するじゃないですか。

インデントってどうしてる?

php-logo

答え

こういうのどうですか。

phpとHTMLが混在している
→ 2つの世界が1つのテキストファイルに入っている
→ それぞれの世界でインデントしたらよいのでは?

<div class="hoge">
	<!-- HTML的には1段目のインデント -->
	<h2>何々の検索結果</h2>
<?php

	//php的には1段目のインデント
	if ($data) {
		//検索結果があったら

?>

	<ul>

<?php

		//php的には2段目のインデント
		foreach ($data as $v) {
			//php的には3段目のインデント
			$v['何か値を'] = '加工したり処理したり';

?>

		<!-- HTML的には2段目のインデント -->
		<li>
			<!-- HTML的には3段目のインデント -->
			<h3>商品名</h3>
			<!-- こういう混じり方はしていいんじゃないかな -->
			<span><?php echo $v['入荷日']; ?></span>
			<p><?php echo $v['商品説明']; ?></p>
		</li>

<?php

	}

?>

	</ul>

<?php

	} else {
		//検索結果がなかったら

?>

	<p>該当ありませんでした。</p>

<?php

	}

?>

</div>

HTMLのインデントにさらにphpのインデントを加算してどんどん右へ右へとインデントが深くなっていくと、HTMLの構造もphpの構造も把握しにくくなっていくが、

phpとHTML、それぞれの世界でお互い干渉せずにインデントをつけていけば、php的にはどういう構造になっているか、HTML的にはどういう構造になっているかがわかりやすい。

また、些細なことだが、左端にphpの開始タグがくっついていると、無駄な空白が出力されない。


phpとHTML混在の状況での「絶対こうだ!」というルールは知らないのですが、インデントの付け方の考え方のひとつのご紹介でした。

関連するメモ

コメント(1)

匿名 2019年11月16日 16:55

PHPの代替構文を使うとさらに分かりやすくなる