【PHP入門】for文の書き方、breakやcontinueも解説します

投稿日: 作成:   更新:

PHPのfor文について解説します。

  • PHPのfor文の書き方が知りたい。
  • for文はどんな時に使う?
  • for、foreach文との違いは何だろう?

このような内容について解説します。

私はWEB開発中心に、フロントエンド、サーバーサイド、サーバー構築など経験豊富なエンジニアです。
これからプログラミングを始める方に向けて、少しでも分かりやすく解説していきたいと思います。

for文が使えるようになりますと、同じようなプログラムを書かなくて済むことが多くなり、スッキリとしたソースコードが書けるようになります。

まずはfor文の処理イメージだけでも覚えていただければと思います。

それでは行きましょう!

for文の書き方

基本的な書き方

for文の基本的な書き方と3つの式について、処理イメージと表で表してみました。

処理イメージ:

名称使い方意味
初期化$i = 0forのカッコ内で使用する変数に初期値を指定する
条件式$i < 5ループを続けるための条件を記述する
増減式$i++ループが一周したときに変数の増減を記述する

次にソースコードで書いてみます。

$i の初期値を0として、1つずつ増加しながら「5」より下の数字を表示します。
セミコロン(;)は忘れずに記述しましょう。

<?php

// 「5」より下の数字を表示する
for ($i = 0; $i < 5; $i++) {
    echo $i;
}

?>

実行結果:

forの条件式が「$i < 5」なので、「01234」が表示できました。

break(抜け出す)

for文を途中で抜け出すには、「break;」を使用します。

先ほどの「01234」を表示するソースコードで、if文で「3」になったら抜け出すように変更してみます。

<?php

for ($i = 0; $i < 5; $i++) {

    // 「3」の時にループを抜け出す
    if ($i == 3) {
        break;
    }

    echo $i;
}

?>

実行結果:

「3」でループを抜け出しましたので、「012」までが表示されました。

continue(スキップ)

for文の途中でスキップするときは、continueを使用します。

if文で「3」のときだけスキップしてみます。

<?php

for ($i = 0; $i < 5; $i++) {

    // 「3」の時はスキップする
    if ($i == 3) {
        continue;
    }

    echo $i;
}

?>

実行結果:

「3」だけスキップされて、「0124」が表示されました。

for文はどんな時に使うのか

PHPでWebサイトを作るのがメインとなりますので、配列をfor文でループしてHTMLのTableを表示するときによく使いますね。

HTML表示だけでなく、PHPだけの処理でも配列のループはよく使います。
まずは配列のループから説明します。

配列のループ

配列$arrをfor文でループしてみます。

配列番号(インデックス番号)は0番から振られてますので、for文の初期化に「$i = 0」をセットして「$i++」で1ずつ増加させながら、「$i < count($arr)」になるまでループさせます。

これによって「配列の数だけループ」することができます。

気を付けたい点は、配列番号は「0、1、2」ですが、配列の数は「3」つであること。
なので、「3より$iが小さい場合ループ」させるように「$i < count($arr)」を指定することが大事です。

<?php

$arr = ['バナナ', 'イチゴ', 'すいか'];

for ($i = 0; $i < count($arr); $i++) {
    echo $arr[$i] . '<br>';
}

?>

実行結果:

配列の中身がすべて表示できました。

HTMLのTableでよく使う

先ほどの「配列のループ」で説明したfor文をHTML表示に応用してみましょう。

分かりやすいように「$no、$name」の変数に格納してから<td>で表示しています。
また、Noが「1 、2、3」と表示されるように「$i + 1」して表示しています。

<table border="1">
    <tr>
        <th>No</th>
        <th>名称</th>
    </tr>

    <?php
        $arr = ['バナナ', 'イチゴ', 'すいか'];

        for ($i = 0; $i < count($arr); $i++) {
            $no = $i + 1;
            $name = $arr[$i];
            echo '<tr>';
            echo '<td>' . $no . '</td>';
            echo '<td>' . $name . '</td>';
            echo '</tr>';
        }
    ?>
</table>

実行結果:

HTMLのTableタグを表示することができました。

for、foreach文との違い

最後にfor、foreach文との違いについてです。

配列を使う分には、for文でもforeach文でもどちらでも記述することができます。

まずは同じ配列をfor、foreach文で表示するソースコードです。

<?php
    $arr = ['バナナ', 'イチゴ', 'すいか'];

    echo 'for文で実行<br>';
    for ($i = 0; $i < count($arr); $i++) {
        echo $arr[$i] . '<br>';
    }

    echo '<br>';

    echo 'foreach文で実行<br>';
    foreach ($arr as $value) {
        echo $value . '<br>';
    }
?>

実行結果:

同じ配列をfor、foreach文で、同じ結果になるよう表示してみました。

このような単純な配列操作であれば、foreach文の方がスッキリと書けることが多いですが、インデックス番号で条件分岐させたいときなどは、for文の方が書きやすいです。

また、連想配列を扱うときはforeach文でしか操作できないです。

連想配列についてわからない方は、こちらの記事に連想配列を解説していますので、ご覧ください。

まとめ

いかがだったでしょうか。
PHPのfor文について次の内容で解説しました。

  • for文の書き方(基本的な書き方、breakで抜け出し、continueでスキップ)
  • for文はどんな時に使うのか(配列のループ、HTMLのTable表示)
  • for、foreach文との違い

for文は数字でループさせることが多く、特に配列のcount数とインデックス番号の違いで頭が混乱することが多いです。

もし混乱するようでしたら、少しずつデバッグしながら配列のイメージ図を手書きでどういう風にループさせるかを整理すると良いでしょう。


プログラミングスクールをお探しの方へ

プログラミング学習を挫折せずに続けて成功できる人は

「目的目標を明確にすること」
「質問・相談できる環境を作ること」
「自己解決スキルを身に着けること」

この3つを大切にしてると思います。

ただ漠然とプログラミング学習をしているだけでは
すぐに身に付きませんので、プログラミングスクールがおすすめです。

  • テックキャンプ
    本気でIT業界に転職したい方におすすめです。
    転職できなかったら全額返金があります。
  • DMM WEBCAMP
    国から認定されているスクールです。
    やむなく離職中の方など、条件を満たしている方は教育訓練給付金が支給されます。
  • TechAcademy
    1週間の無料体験があります。
    気軽にスクールを体験したい方向けです。