アフィリエイト広告を利用しております。
参考サイトの記載がある場合はそちらの方がより詳しく記載説明がされているのでぜひそちらもご覧ください。
そのままコピペしても反映されないものもあります。サイトごとに変えないといけない箇所がありますので修正してください。

HTML PHP

【第4回】何度もくり返したい!PHPの「繰り返し(ループ)」入門

chatGPTに記事を書いてもらってます

プログラムでは、同じ処理を何度も繰り返したいことがよくあります。
そんなときに使うのが 「ループ文」 と呼ばれるものです!

PHPでよく使うループ文は、主に以下の3つです

ループの種類 こんなときに使う
for 文 回数が決まっているとき
while 文 条件が合っている間だけ繰り返すとき
foreach 文 配列を1つずつ取り出すとき

for 文(回数が決まっているとき)

<?php
for ($i = 1; $i <= 5; $i++) {
  echo $i . "<br>";
}
?>

このコードは「1〜5を順番に表示する」処理です。

ポイント:

  • $i = 1:スタートは1から
  • $i <= 5:5以下の間繰り返す
  • $i++:1ずつ増やしていく

while 文(条件が合う間繰り返す)

<?php
$i = 1;
while ($i <= 5) {
  echo $i . "<br>";
  $i++;
}
?>

for 文と同じ結果になりますが、条件だけで制御するのが while 文です。


foreach 文(配列を1つずつ取り出す)

<?php
$colors = ["赤", "青", "緑"];

foreach ($colors as $color) {
  echo $color . "<br>";
}
?>

これは「配列 $colors にあるすべての色」を1つずつ表示する処理です。

$color の部分には、配列の中身が順番に入ってきます。

※配列については次回学びます。配列というものがあるとだけ頭に入れておきましょう


まとめ

キーワード 説明
for 回数が決まっている繰り返し
while 条件が合う間ずっと繰り返す
foreach 配列の中身を1つずつ取り出すときに使う

おまけ:break と continue

ループの中で以下の2つもよく使います

キーワード 説明
break 繰り返しを途中で終わらせる
continue 今の1回をスキップして次に進む

break と continue ってなに?

ループの中で「特定の条件のときに、ループの動きを変えたい」って思うことありませんか?
そんなときに活躍するのが break と continue です!


break:繰り返しを途中でやめたいとき

break は、ループを強制的に終了する命令です。

<?php
for ($i = 1; $i <= 10; $i++) {
  if ($i == 5) {
    break;
  }
  echo $i . "<br>";
}
?>

この場合、$i が 5 になったら break でループを終了するので…

表示されるのは 1〜4 だけになります


continue:今の回をスキップしたいとき

<?php
for ($i = 1; $i <= 5; $i++) {
  if ($i == 3) {
    continue;
  }
  echo $i . "<br>";
}
?>

この場合、$i が 3 のときだけスキップされて…

表示されるのは 1, 2, 4, 5!


無限ループに注意!

ループを書くときにうっかり条件を間違えると、ずーっと終わらない「無限ループ」になってしまうことがあります。

こんなミス、やりがち!

<?php
$i = 1;
while ($i <= 5) {
  echo $i . "<br>";
  // $i++; を忘れてる!!
}
?>

このコードは $i がずっと 1 のままなので、
「$i <= 5」 という条件が ずっと true のままです。
その結果… ページが終わらない!ブラウザが止まる!


無限ループを防ぐポイント

  • for文 なら「初期値・条件・増減」をちゃんと書く
  • while文 では「条件が変化するようにする」こと
  • break を使って、万が一の脱出ルートを作っておくのもアリ!

意図的な無限ループを書くときもある!

<?php
$i = 1;
while (true) {
  // 条件によって break する
}
?>

こういう使い方もありますが、ちゃんと break で抜けられる設計が必要です。
初心者のうちは、まず 「ループからちゃんと抜ける」 ことを意識して書いてみましょう!

次回は「配列」について学びます!

おすすめ記事

1
制作理由 ワードプレスのクラシックエディタを直接使っているといつも思うことがありました [Tab]キー押して空白入れて見やすくインデントしたい! この記事を書くまでは入れないか、スペースキーを押して誤 ...
2
制作理由 ワードプレスのクラシックエディタを直接使っているといつも思うことがありました コード追加ボタンを自由に追加出来たら便利じゃない? この記事を書くまでは、クリップボード貼り付けアプリ[Clib ...
3
アプリ制作するに至った理由 納品代行の仕事をしていて思ったことがあります 納品代行をしていると本当に様々なお客様から様々な商品が届きます その中でも特に注意しているのが、「見た目ほぼ同じだけど違う商品 ...

-HTML, PHP
-