forもforeachもwhileと同様、繰り返し処理を行なってくれます。
forは繰り返し構文の中で、最も汎用性が高く、
foreachは繰り返し構文の中でも、配列の繰り返しに特化しています。
どちらも非常にお世話になるので、絶対に使いこなせるようになりましょう!
forの基本構文
forの基本構文は、JavaScriptとほぼ同じです。ラッキー!
というかfor文自体は同じなのですが、変数の定義方法や呼び出し方法が地味に違うだけです。
for($i = 0; いつまで; $i++){
繰り返し処理する内容;
}
for文の仕組みは以下のような流れによって成立しています。
- 変数$iに0を入れておく
- 処理が行われるたび、$iに1ずつ加算されていく
- 「いつまで」部分で指定したタイミングまで辿り着いたら、処理が終わる
それでは、実際にfor文を使ってみましょう!
サンプルコード
$iに入っている数字を繰り返し出力しています。
<?php
for($i = 0; $i < 5; $i++){
echo "<p>{$i}</p>";
}
?>
for文でHTMLのタグを繰り返し出力する方法
PHPはHTMLと混在させて使っていくことができるので、少し記述方法を変えると、簡単に繰り返しHTMLを出力していくことができます。
<?php for($i = 0; いつまで; $i++): ?>
繰り返し出力されるHTML部分
<?php endfor; ?>
ここで、whileやifの時と同じような注意点が2つあります。
① for の終了サイン endfor
通常のfor文には出てこなかった、endfor というものが出てきていますね。
これは「forで繰り返し出力するHTMLはここまでですよ」というサインです。
これがないとどこまで繰り返せばいいか分かりませんからね。
② :(コロン)と ;(セミコロン)
一番最初の for() の後ろにはコロン、最後の endfor の後ろにはセミコロンをつかいます。
間違えるとエラーになってしまうので、注意しましょう。
サンプルコード
先ほどのサンプルコードを、こちらに置き換えてみましょう。
<?php for($i = 0; $i < 5; $i++): ?>
<p><?php echo $i ?></p>
<?php endfor; ?>
HTMLを出力する際は、圧倒的にこちらの記述方法をつかいます。
内容がしょぼいのであまり楽には見えないかもしれませんが、HTMLの中身が増えると、圧倒的にこちらの方が記述が楽かつ綺麗になります。
foreachの基本構文
foreachは配列を出力することに特化しています。
この構文を使うことで、変数を設置せずとも、配列の要素を順番に処理してくれます。
foreach(配列の変数名 as $e){
echo $e;
}
変数の名前は何でもいいのですが、この$eの部分に、配列の要素が順番に入っていきます。
サンプルコード
「こ」「ん」「に」「ち」「は」と5つの要素が格納された配列を、1文字ずつ順に出力しています。
<?php
$arr = ['こ', 'ん', 'に', 'ち', 'は'] ;
foreach($arr as $e){
echo "<p>{$e}</p>";
}
?>
foreachで配列をHTMLと混ぜて出力する方法
foreachもforと同様に、HTMLと混在させて使っていくことができます。
<?php foreach(配列の変数名 as $e): ?>
繰り返し出力したいHTML部分
<?php endforeach; ?>
注意する点は先ほどと同じです。
- foreachの終わりに endforeach と記述する
- foreach() の後ろにはコロン、eandforeach の後ろにはセミコロン
サンプルコード
これも先ほどのサンプルコードを書き換えています。
<?php $arr = ['こ', 'ん', 'に', 'ち', 'は'] ; ?>
<?php foreach($arr as $e): ?>
<p><?php echo $e ?></p>
<?php endforeach; ?>
実際の現場での用途
forやforeachはとにかくよく使います。
特にforeachは、データベースに格納され、配列化された要素を全て取り出す際に重宝します。
今後ずっとお世話になるでしょうから、forさんforeachさん宅へ菓子折りでも持っていきましょう。