
この記事の監修者
三谷 将大
フリーランスエンジニア/WEBデザイナー/WEBマーケター
1997年 愛知出身。
業界5年以上。実務経験後に独立し、30社以上のホームページ制作やマーケティング支援を行っている。
ループ処理とは
ループ処理とは、同じ処理を繰り返し実行するための構文です。PHPには、foreach
文、for
文、while
文という3つの主要なループ構文があり、それぞれ異なる用途や特性を持っています。
では、そのループ処理の使い方を解説していきます。
ループ処理の使い方
foreach文
foreach
文は、配列や連想配列を繰り返し処理するのに適しています。配列の各要素に対して、順番に1つずつ処理を行います。
<?php
foreach ($配列の変数名 as $値の変数名) {
繰り返す処理
}
?>
//例
<?php
$果物 = ["リンゴ", "バナナ", "オレンジ"];
foreach ($果物 as $フルーツ) {
echo $フルーツ . "<br>";
// 出力結果
リンゴ
バナナ
オレンジ
$果物 as $フルーツは「配列の$ の値を$フルーツに定義する」という意味。
『変数を定義→処理を実行』という一連の流れが、値の数だけ繰り返し実行されています。
連想配列を処理する場合、キーと値の両方を取得することもできます。
<?php
$student = ["名前" => "太郎", "年齢" => 20, "学年" => "2年生"];
foreach ($studentas $key=> $value) {
echo $key. ": " . $value. "<br>";
}
?>
//出力結果
名前:太郎
年齢:20
学生:2年生
while文
while
文は、条件が真である間、ループを実行し続けます。条件が最初に判定されるため、条件が初めから偽であれば、一度も実行されません。
<?php
式1;
while (式2) {
繰り返しする処理
増減式
}
?>
例えば、以下のようなケースがあります。
<?php
$カウント = 0;
while ($カウント < 5) {
echo "カウント: " . $カウント . "<br>";
$カウント++;
}
?>
//出力結果
カウント:1
カウント:2
カウント:3
カウント:4
カウント:5
WordPress制作では以下のように使用するケースあります。
<!-- have_posts()、the_post()は予め用意されているWordPress関数 -->
<!-- 記事があるかどうかをif文で判断 -->
<?php if (have_posts()) : ?>
<!-- 以下は記事がある場合の処理を実行 -->
<ul>
<?php while (have_posts()) : the_post(); ?>
<!-- 記事の数だけ繰り返し出力するコード -->
<a href="#">
<img src="neco" alt="neco">
<h2>
タイトルタイトルタイトルタイトルタイトル
</h2>
</a>
<?php endwhile; ?>
</ul>
<?php else : ?>
<!-- 記事がなかったときの処理 -->
<p>記事が投稿されていません</p>
<?php endif; ?>
<?php while (have_posts()) : the_post(); ?>
について解説すると、
まずwhile
でループを開始し、have_posts()
がtrue
を返す間(記事が存在する間)ループを続けます。各ループの開始時にthe_post()
で記事のデータを呼び出し、 <?php endwhile; ?>
までのコードを出力します。
for文
※for
文はWordPress制作ではあまり使用するケースはありません。軽くわかっていればOKです。
for
文は、特定の回数だけループを実行する場合に使用します。一般的には、インデックス変数を使ってループの回数を制御します。
<?php
for (式1; 式2; 式3) {
// 繰り返し実行する処理
}
?>
よくあるケースとしては数値をカウントして増やしていくときです。
<?php
for ($i = 0; $i < 5; $i++) {
echo "カウント: " . $i . "<br>";
}
?>