PHPの代表的なループ処理 while・for・foreach文

PHPの代表的なループ処理 while・for・foreach文

繰り返しや同じ処理を行うときに使用するPHPの「ループ(loop)」文。ループ文の代表的なものとして「while文」・「for文」・「foreach文」があります。
今回の記事では、PHP初心者の方に向けて、while文とfor文とforeach文の解説をしていきます。

while文とは

while文とは

while文とは、ループ処理を行う回数が決まっていないときに使用するループ文です。後ほど紹介するfor文とくらべ、使用頻度は少ないですが、PHPのループ文の中で最も簡単なものなので、まずはwhile文からループ処理について学習していくと良いと思います。

while文の書き方

while文の基本の書き方を見ていきましょう。

<?php
$ num = 0;
while($ num < 20){
 var_dump($ num);
++$ num;
}

では、上から順番に細かく解説してきます。

①whileの後ろに「()」を記述。「()」内がループが実行される条件です。「()」内の条件式が成立している、trueの間はループ処理が実行されます。

②「()」に続いて、「{}」の中を見ていきます。
「{}」内には、ループで実行させる処理の内容を書きます。
上記例文では、
「var_dump($ num);
++$ num;」

となっています。
while文の重要なポイントは、「{}」の中には「()」内で使用した数値(変数など)を変更する処理を入れなければいけないということです。

③まず、前半の「var_dump($num)」。「var_dump」は、変数の情報を表示する関数で、あとに続く「()」内を表示させます。

④後半の「++$ num」は、「1度処理を行う度に変数numの値に1を足してください。」という指示です。2を足したい場合は、「$ num + 2」、3を引きたい場合は、「$ num – 3」というように算術演算子を用いて自由に設定できます。
もし、「++$ num」の記述をしなかった場合、変数numは永遠に「0」のまま、「num < 20」が永遠に成立してしまい無限ループに陥ってしまいます。

while文の書き方
上記のときは、ループ処理を途中で抜け出す制御構文「break」が使えます。

break文の書き方

<?php
$ num = 0;
while($ num < 20){
 var_dump($ num);
++$ num;
 
if (num > 100){
    break;
  }
}

「if (num > 100){
break;
}」
の部分がbreak文です。
上記break文の場合だと、「もし変数numが100より大きな数になったら、ループを抜け出してください。」という指示になります。
「条件分岐if」については、PHPの基本構文その1 条件分岐で説明しておりますので、宜しければご覧ください。

最新情報をいち早くお届け!

無料会員登録していただくと、
会員限定の特別コンテンツ記事を最後まで
読むことができます!
その他、更新情報・イベント情報を
お届けいたします。

for文とは

for文とは

for文とは、ループ処理を行う回数が決まっているループ文です。for文の基本の書き方を見ていきましょう。

<?php
for($ num = 0; $ num < 10; ++$ num){
   echo $ num;
}

「echo $ num;」が10回繰り返して実行されます。(0から数え始め、0~9で10回です)出力結果は下記のようになります。

0123456789

上から順番に細かく解説してきます。

①forの後ろに「()」を記述。「()」内が、ループが実行される条件です。

②「()」の中を「;」ごとに区切って見ていきます。
「$ num = 0」「$ num < 10」「++$ num」の3つに分けることができます。

for文とは

③まず「$ num = 0」ですが、「初期化」と呼ばれる部分です。上記例文の場合「変数numの最初の数値は0です。」と宣言していると考えてください。
重要なのが、初期化処理は、for文が実行される前の初めの1回しか処理が行われないということです。覚えておいてください。

④続いて、「$ num < 10」です。「条件式」と呼ばれる部分で、上記例文の場合「変数numが10以下の場合はループ処理を実行し続けてください。」という指示です。変数numが10以上になった時点で、ループ処理から抜けます。

⑤最後に、「++$ num」です。「更新式」と呼ばれる部分で、上記例文の場合「1度処理を行う度に変数numの値に1を足してください。」という指示です。2を足したい場合は、「$ num + 2」、3を引きたい場合は、「$ num – 3」というように算術演算子を用いて自由に設定できます。
算術演算子がわからない方は、下記リンク先で詳しく解説されていますのでご覧ください。

PHPで算術演算子を使って計算する方法【初心者向け】

for文が実行され続けている限り、更新式も処理され続けます。
以上で「()」内の説明は終わりです。

⑥「()」に続いて、「{}」の中を見ていきます。
「{}」内には、ループで実行させる処理の内容を書きます。上記例文では、「echo $ num;」となっており、重要なのが、先述した「()」で使われている変数「num」をそのまま使用する、という点です。

while文・for文の基本の書き方、見方は理解できたでしょうか。次の章では、同じループ処理を行うwhile文とfor文の使い分けについて解説していきます。

while文とfor文と違い

while文とfor文と違い

while文とfor文の大きな違いは「ループ処理の回数を記述するかしないか」です。while文はループの回数を記述せず、特定の条件に当てはまった場合にbreakさせる形をとります。breakさせないと無限ループになってしまうので、breakとwhile文はセットで使うと考えた方が良いでしょう。

一方、for文はループの回数を記述し、指定した回数に達したらループを自動で抜け出します。

つまり、

  • 繰り返す数が決まっておらず、特定の条件を満たすまで繰り返す場合→while文
  • 繰り返す数が決まっており、指定の回数まで繰り返す場合→ for文

ということになります。

foreach文とは

foreach文とは

配列をループ処理したいときに使うループ文です。foreach文の基本の書き方を見ていきましょう。

<?php
$nums = [ ‘1’ , ‘2’ , ‘3’ , ‘4’ , ‘5’ ];
foreach($ nums as $ num) {
   echo $ num;
}

出力結果は下記のようになります。

12345

①配列に(ここでは$nums)出力したい値を記述します。

②($ nums as $ num)の記述で
配列の要素を変数(ここでは$num)に代入しています。

上記のforeach文を少し活用すると

<?php
$nums = [ ‘1’,‘2’,‘3’,‘4’,‘5’ ];
foreach($ nums as $ num) {
   $ num = $num * 2 ;
   echo $ num;
}

出力結果は下記のようになります。

246810

まとめ

while文とfor文の違いについて、分かっていただけましたでしょうか。さらに、foreach文も上手に利用すればとても有効です。正しく理解して、うまく使い分けられるようになりたいですね。

マーケティングでお悩みでしたら、
Bigmacにお任せください。

バナーlefty
バナー総合
バナー総合