【PHP】初心者必見!!繰り返し処理(for文)の使い方について解説!!

ループとは、while文でも解説しましたが、「繰り返し処理」とも言い特定の条件が満たされるまで同じ数のコードを何度も実行する事を言います。
もし、while文について知りたいと思う方は下記をご参照ください

 

PHPのループ処理はいくつかありますが、今回はfor文の使い方についてわかりやすく解説していきます。
ループ処理を使うと、数値や数式などを何回も書かなくて済みますので、非常に便利です。

PHPのfor文の書き方

for文の書き方は以下のようになります。

それぞれを意味合いを解説します。
初期値:ループカウンター値を初期化します。ループ処理を行う際、最初の値になります。
条件式:ループの繰り返しごとに確認します。
条件式がtrueだった場合、ループは続行されます。
しかし、falseの場合、ループは終了します。
更新式:ループカウンター値を増やします。ループするたびにこの式の処理が行われます。

PHPのfor文の使い方

for文は冒頭でも言いましたが、ループ処理なので、同じ処理を何回も繰り返したい時に使破れます。

for文の基本的なサンプル

次の例では、0から10までの数字を表示するコードとなります。

出力結果

数字: 0
数字: 1
数字: 2
数字: 3
数字: 4
数字: 5
数字: 6
数字: 7
数字: 8
数字: 9
数字: 10

上のコードはnumという変数があり、numの値が、10以下の場合ははこのfor文の処理が繰りかえして実行されます。
処理の順番は以下のようになっています。

1. 変数numの初期値が設定される(今回の初期値は0)
2. 条件式(num <=10 )を確認する。
2-1. trueならfor文の括弧内の処理を実行する。
2-2. falseならfor文の括弧の外に抜ける。(5へ移動)
3. trueの場合なら、更新式が実行される。(今回は条件式がtrueになるたびにnumが+1ずつ増えていく)
5. 処理終了

for文でスキップをするサンプル

for文でスキップするにはcontinue文を使用します。
スキップとはその処理を一時的に飛ばすことです。continue文を通るとそれ以降の処理をスキップします。
しかし、ループ処理は実行されます。

UNOとかでもスキップカードがあると思いますが、スキップした場合、そのターンだけ飛ばされますが、次のターンになれば自分の番がきますよね。
プログラムのスキップも同様にcontinue文を使用することで一時的にその処理を飛ばすことができます。

出力結果

数字: 0
数字: 1
数字: 2
数字: 3
数字: 4
数字: 6
数字: 7
数字: 8
数字: 9
数字: 10

変数numが5の場合にcontinue文を通るので、continue文以降に書かれているechoはスキップされます。
ですので、5だけは表示されません。

for文を抜けるサンプル

for文を抜けるにはbreak文を使用します。
抜けるとはその処理を強制的に終了させることです。break文を通ると繰り返し処理から強制的に抜け出します。
ですので、条件式がtrueであってもループ処理は終了します。

出力結果

数字: 0
数字: 1
数字: 2
数字: 3
数字: 4

条件式は($num <= 10)なので変数numが10まではループ処理が行われます。
しかし、変数numが5になると、break文を通る為、ループ処理を強制的に終了します。
その為、0から4までしか出力されません。

conctinue文とbreak文の認識を間違えないようにしましょう。

for文ネストのサンプル

fo文のネストは一般に「多重ループ」と呼びます。

つまり、二重、三重とネストが深くなるたびにループが多くなります。

ここで、二重ループ、三重ループのサンプルコードを見てみましょう。

二重ループの例

出力結果

1
12345
2
12345

続いて三重ループのサンプルコードです。

三重ループの例

出力結果

1
12345
678910
2
12345
678910

for文の応用

次はfor文の応用な使い方を紹介します。
for文を使って表を作成してみます。

for文で表を作成するサンプル1

出力結果

for文で表を作成するサンプル2

出力結果

for文とwhile文の違い

while文とは

while文とはfor文と同じ繰り返し処理を行います。
while文について知りたい方はwhikle文の方で解説してますのでそちらをご参照ください。
また、for文とwhile文の違いについてもwhile文の方で解説しています。

Writer

ST

株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報