MENU

【PHP基礎講座⑥】繰り返し処理について(foreach、while、for、break)

PHPの繰り返し処理について(while、foreach、for、break)

『PHP基礎講座⑥』では、繰り返し処理について解説していきます。

目次

繰り返し処理とは

同じ処理を値だけ変えて実行するようなときは、繰り返し処理を使います。

また、繰り返し処理は「ループ処理」と呼ぶこともあるので頭に入れておきましょう。

では、その繰り返し処理のPHPのコードを解説していきます。

繰り返し処理の使い方

WordPressオリジナルテーマ制作で主に使うことが多い繰り返し処理の構文は、
foreachwhileの2つだけです。

では、この2つの構文について1つずつ解説していきます。

foreachの使い方

以下のように、foreachは配列もしくは連想配列の値を1つずつ処理するときに使います。

<?php
foreach ($配列の変数名 as $値の変数名) {
    繰り返す処理
}
?>

$配列の変数名には、すでに定義されている配列 or 連想配列の変数名を書き、

$値の変数名は、新たな変数名を指定します。

上記の構文の具体的な活用例は以下のとおりです。

<?php
// 配列を定義
$shopping_list = ["牛乳", "トイレットペーパー", "パン"];

// foreachで値を処理
foreach ($shopping_list as $shopping_item) {
    echo $shopping_item."<br>";
}
?>

// 出力結果
牛乳
トイレットペーパー
パン

$shopping_list as $shopping_itemは「配列の$shopping_listの値を$shopping_itemに定義する」という意味で

$shopping_itemには、配列のそれぞれの値が1つずつ順番に定義されていきます。

つまり、『変数を定義→処理を実行』という一連の流れが、値の数だけ繰り返し実行されるということです。

foreachを使わないと以下のように、それぞれの値ごとにechoで出力しないといけないですが、その手間が省けるのはとても便利ですね。

<?php
$shopping_list = ["牛乳", "トイレットペーパー", "パン"];

echo $shopping_item[0]."<br>";
echo $shopping_item[1]."<br>";
echo $shopping_item[2]."<br>";
?>

breakの使い方

breakを使うと、繰り返し処理を途中で止めることができます。

WordPressオリジナルテーマ制作においては、以下のようにforeach文、if文と組み合わせて使うことが多いです。

<?php
foreach ($配列の変数名 as $値の変数名) {
    if (条件) {
        条件を満たしているときだけ繰り返す処理
    } else {
        break;
    }
}
?>

この構文を見ただけだと、

「どんなときに使うの?」と思う方が多いと思うので、具体的な活用例は以下のとおりになります。

<?php
$shopping_list = ["牛乳", "トイレットペーパー", "パン", "りんご", "いちご", "バナナ", "みかん"];

// 処理を繰り返す回数
$limit = 5;
// 処理が行われた回数
$count = 0;

foreach ($shopping_list as $shopping_item) {
    if ($count < $limit) {
        echo $shopping_item."<br>";
        // 処理が実行されるたびに値が1ずつ増えていく
        $count++;
    } else {
        // $countの値が$limitの値に達したら繰り返し処理を止める
        break;
    }
}
?>

上記のコードは、「買い物リストの中から5つのアイテムだけを出力する」という処理になります。

breakは「配列の中のすべての値を出力するのではなく、指定した数だけ出力したい」というときに活用します。

whileの使い方

whileを使うことで、以下にように条件を満たしている間だけ繰り返し処理を実行させることができます。

<?php while (条件) : ?>
    条件を満たしているときだけ繰り返して出力するHTML
<?php endwhile; ?>

上記の構文はWordPressサイト制作において使用する部分が限定的なため、
WordPress化のときに記述するコードを具体例として紹介します。

<!-- 記事があるかどうかをif文で判断 -->
<?php if (have_posts()) : ?>
    <!-- 記事があれば以下の処理を実行 -->
    <ul class="news__items">
        <?php while (have_posts()) : the_post(); ?>
            <!-- 記事の数だけ繰り返し出力するコード -->
            <a href="#" class="news__link">
                <img src="" alt="" class="news__img">
                <h2 class="news__title">
                    タイトルタイトルタイトルタイトルタイトル
                </h2>
            </a>
        <?php endwhile; ?>
    </ul>
<?php else : ?>
    <!-- 記事がなかったときの処理 -->
    <p>記事が投稿されていません</p>
<?php endif; ?>

上記のコード内にあるwhile (have_posts()) : the_post();については、

WordPress化の学習のときに学ぶことになるので、今は理解できなくて問題ないですが、

簡単にいうと「投稿されている記事があれば、それぞれの記事のデータにアクセスしますよー」ということです。

この繰り返し処理のコードを応用することで、ブログなどでよく見る以下のようなデザインの実装ができます。

while文については、実際にWordPressサイトを制作しながら学んだほうが理解しやすいため、今は完全理解しなくてOKです!

for文の学習はしなくてOK

WordPressオリジナルテーマ制作では、for文を使った繰り返し処理を使うことはほとんどないため、

まだ実務をこなしてない学習フェーズの段階では急いで学ぶ必要はないです。

for文は実務をこなすようになって、応用力がいるような実装を求められたときに初めて学ぶ流れでOKです!

まとめ

foreachの使い方

foreachは配列もしくは連想配列の値を1つずつ処理するときに使います。

// 基本の構文
<?php
foreach ($配列の変数名 as $値の変数名) {
    繰り返す処理
}
?>

// 具体例
<?php
$shopping_list = ["牛乳", "トイレットペーパー", "パン"];

foreach ($shopping_list as $shopping_item) {
    echo $shopping_item."<br>";
}
?>

// 出力結果
牛乳
トイレットペーパー
パン

breakの使い方

breakを使うと、繰り返し処理を途中で止めることができます。

WordPressオリジナルテーマ制作においては、以下のようにforeach文、if文と組み合わせて使うことが多いです。

// 基本の構文
<?php
foreach ($配列の変数名 as $値の変数名) {
    if (条件) {
        条件を満たしているときだけ繰り返す処理
    } else {
        break;
    }
}
?>

// 具体例
<?php
$shopping_list = ["牛乳", "トイレットペーパー", "パン", "りんご", "いちご", "バナナ", "みかん"];

// 処理を繰り返す回数
$limit = 5;
// 処理が行われた回数
$count = 0;

foreach ($shopping_list as $shopping_item) {
    if ($count < $limit) {
        echo $shopping_item."<br>";
        // 処理が実行されるたびに値が1ずつ増えていく
        $count++;
    } else {
        // $countの値が$limitの値に達したら繰り返し処理を止める
        break;
    }
}
?>

whileの使い方

whileを使うことで、条件を満たしている間だけ繰り返し処理を実行させることができます。

// 基本の構文
<?php while (条件) : ?>
    条件を満たしているときだけ繰り返して出力するHTML
<?php endwhile; ?>

// 具体例(※WordPress化で使用するコード)
<!-- 記事があるかどうかをif文で判断 -->
<?php if (have_posts()) : ?>
    <!-- 記事があれば以下の処理を実行 -->
    <ul class="news__items">
        <?php while (have_posts()) : the_post(); ?>
            <!-- 記事の数だけ繰り返し出力するコード -->
            <a href="#" class="news__link">
                <img src="" alt="" class="news__img">
                <h2 class="news__title">
                    タイトルタイトルタイトルタイトルタイトル
                </h2>
            </a>
        <?php endwhile; ?>
    </ul>
<?php else : ?>
    <!-- 記事がなかったときの処理 -->
    <p>記事が投稿されていません</p>
<?php endif; ?>
よかったらシェアしてね!
  • URLをコピーしました!

即戦力級のWeb制作者になるためのLINEマガジン

LINEマガジン登録特典のサムネイル
即戦力級のWeb制作者になるためのLINEマガジン
目次