PHPの文法が特殊過ぎて混乱している人が読むページ
何かと需要が高く、HTMLとの相性も良く、導入も簡単なPHPですが、初心者が混乱するポイントがあります。むしろ他言語に慣れ親しんだ人のほうが混乱するかも知れません。
それは『PHPコードの途中にHTMLを直接書けてしまう』という仕様です。とても便利な記法なんですが初めて見る人は戸惑うはずです(初めてじゃなくても混乱しますが)。
大まかには3パターン記法が存在する
百聞は一見にしかず、コードを見てもらったほうが良いでしょう。
1から10までを画面に出力するだけのプログラムです。
まずは、他言語でもお馴染みのオーソドックスな記法です。
<?php $i = 0; while($i <= 10){ echo "<div>".$i++."</div>"; } ?>
続いて、HTMLを埋め込んだ記法その1
<?php $i = 0; while($i <= 10){ ?> <div><?php echo $i++; ?></div> <?php } ?>
最後に、HTMLを埋め込んだ記法その2
<?php $i = 0; while($i <= 10): ?> <div><?php echo $i++; ?></div> <?php endwhile; ?>
いずれも全く同じ処理をしますが、ここまで記述に違いが生まれるんですよね。特に2番目の文の途中にHTMLが割って入るのはカオスです。
これら3つの記法の使い分け方
可読性を考え通常はオーソドックスな1番目の記法を使いましょう。HTMLの分量が多い場合は3番目の記法でブロックの範囲を明示するのがスマートかと思います。2番目の記法はオススメしません。プログラムが複雑化すると、どこまでがwhile文のブロックなのか分からなくなるからです。
ちなみに3番目の記法のルールは以下の通りです(if文、for文などでも同様の記述が可能)。
処理
end命令文;
おわりに
というわけで今回は珍しくPHPネタを書きました。
知ってれば大したことでは無いんですが、プログラミング関係ってピンポイントに目的の情報を探すのって難しいんですよね。一人でも多くの人の役に立てれば良いなと思っています。
もし良かったらツイート・シェアをよろしくお願いします。