お急ぎの方、結論はこちら!
#そのままforeach文
まずは、よくあるforeach文の例を用意してます。
例1
<?php
$array = [
1 => "one",
2 => "two",
3 => "three",
4 => "four",
5 => "five"
];
foreach ($array as $key => $value) {
echo "{$key}番目は{$value}が格納されている。<br>";
}
$arrayという配列を用意し、これをforeach文で順番に$keyと$valueに代入して順番に表示しています。
これを実行すると…
例1の実行結果
1番目はoneが格納されている。
2番目はtwoが格納されている。
3番目はthreeが格納されている。
4番目はfourが格納されている。
5番目はfiveが格納されている。
…と、このように表示されます。
#そのままforeach文をHTMLに入れると
上記のような結果を、HTMLでlist表示させたい場面がよくあります。
このままHTMLに入れ込むと…
例2
<?php
$array = [
1 => "one",
2 => "two",
3 => "three",
4 => "four",
5 => "five"
];
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<?php foreach ($array as $key => $value) { ?>
<li><?php echo "{$key}番目は{$value}が格納されている。"; ?></li>
<?php } ?>
</body>
</html>
…と、このような書き方になります。
これで、実行すると下の図の通り、ちゃんと結果は得られます。
しかし、
<?php } ?>
この『foreach文が終わりなんで、「 } 」ですよ〜』の所なんかは、非常に分かりにくく、ミスも生まれやすいですね。
#HTMLにはコロン構文で書く
そこで、以下の書き方がよく使われます。
例3
<?php
$array = [
1 => "one",
2 => "two",
3 => "three",
4 => "four",
5 => "five"
];
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<?php foreach ($array as $key => $value) : ?>
<li><?php echo "{$key}番目は{$value}が格納されている。"; ?></li>
<?php endforeach; ?>
</body>
</html>
要は、 「 } 」を「 : 」に、「 } 」を「 endforeach; 」に変えた書き方です。
これにより、文字数は少し長くはなりますが、foreachの終わりがどこなのか、分かりやすくなります。