同じ処理を繰り返し実行する「ループ」はプログラミングの基本です。
PHPには代表的なループとして for
、while
、foreach
の3種類があります。
当記事では、それぞれの特徴と使い方をわかりやすく解説します。
目次
for文の使い方
最も基本的なループ構文で、カウンタ変数を使った繰り返し処理に適しています。
for ($i = 1; $i <= 5; $i++) {
echo $i . '回目の処理<br>';
}
上記の例では1〜5まで5回処理を繰り返し、「1回目の処理〜5回目の処理」と出力されます。
- 初期化式:
$i = 1
- 条件式:
$i <= 5
(条件がtrueの間ループ) - 更新式:
$i++
(ループごとにカウンタを1増加)
for文は繰り返し回数が決まっている場合に便利です。
while文の使い方
条件がtrueの間、無限にループできる構文で、繰り返し回数が決まっていない場合に使います。
$count = 1;
while ($count <= 5) {
echo $count . '回目の処理<br>';
$count++;
}
条件が最初からfalseだと1回も処理されない点に注意しましょう。
do-while文
while文と似ていますが、条件の判定が後なので必ず1回は処理が実行されるのが特徴です。
$count = 6;
do {
echo $count . '回目の処理<br>';
$count++;
} while ($count <= 5);
この例では最初から条件はfalseですが、1回だけ「6回目の処理」と出力されます。
foreach文の使い方
配列や連想配列を扱うときに便利な構文で、配列の要素を順に取り出して処理できます。
$fruits = ['Apple', 'Banana', 'Orange'];
foreach ($fruits as $fruit) {
echo $fruit . '<br>';
}
連想配列の場合
キーと値を両方取得できます。
$person = [
'name' => 'John',
'age' => 30,
'country' => 'USA'
];
foreach ($person as $key => $value) {
echo $key . ': ' . $value . '<br>';
}
breakとcontinue
ループの制御に役立つ構文も覚えましょう。
- break:ループを強制終了する
- continue:ループをスキップして次のループへ進む
for ($i = 1; $i <= 10; $i++) {
if ($i === 5) {
break; // 5でループを終了
}
echo $i . '<br>';
}
for ($i = 1; $i <= 5; $i++) {
if ($i === 3) {
continue; // 3はスキップ
}
echo $i . '<br>';
}
無限ループに注意しよう
ループ処理で気をつけたいのは無限ループを作らないことです。
終了条件を間違えると処理が永遠に続き、サーバーやPCに大きな負荷をかけてしまいます。
例えば以下のコードは、条件が常にtrueのため無限ループになります。
$i = 1;
while ($i <= 5) {
echo $i . '<br>';
// $iをインクリメントしていないため、条件が変わらずループが終わらない
}
この例では $i++
を書き忘れたことで、$iの値が1のまま変わらず、条件 $i <= 5
がずっとtrueとなり無限ループしてしまいます。
ループを書く際は以下を徹底しましょう。
- 必ず終了条件を見直す
- カウンタ変数の更新を忘れない
- while(true) のような無限ループを使う場合は、breakで終了条件を明示する
$i = 1;
while (true) {
echo $i . '<br>';
if ($i >= 5) {
break; // 必ず終了する条件を作る
}
$i++;
}
「ループはいつ終了するか?」を意識して書く習慣を身につけましょう。
まとめ
- for:回数が決まっているループ向き
- while:条件を満たす限り繰り返す
- do-while:最低1回実行してから条件を判定
- foreach:配列や連想配列に最適
ループを自在に使えるようになると、処理の効率が大幅に上がります。
繰り返し練習して習得しましょう!