PHPのfor文について解説します。
- PHPのfor文の書き方が知りたい。
- for文はどんな時に使う?
- for、foreach文との違いは何だろう?
このような内容について解説します。
私はWEB開発中心に、フロントエンド、サーバーサイド、サーバー構築など経験豊富なエンジニアです。
これからプログラミングを始める方に向けて、少しでも分かりやすく解説していきたいと思います。
for文が使えるようになりますと、同じようなプログラムを書かなくて済むことが多くなり、スッキリとしたソースコードが書けるようになります。
まずはfor文の処理イメージだけでも覚えていただければと思います。
それでは行きましょう!
目次
for文の書き方
基本的な書き方
for文の基本的な書き方と3つの式について、処理イメージと表で表してみました。
処理イメージ:

名称 | 使い方 | 意味 |
---|---|---|
初期化 | $i = 0 | forのカッコ内で使用する変数に初期値を指定する |
条件式 | $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週間の無料体験があります。
気軽にスクールを体験したい方向けです。