プログラミング言語PHPのfor文について、Web開発経験のある筆者が初心者向けに丁寧に解説します。
本記事を読めば、PHP for文の書き方・使い方、breakとcontinueの違い、for文とwhile文の違いについて理解できるでしょう。
特に、for文とwhile文の違いは重要なので、ぜひ知っておきましょう。
※PHP while文を学習したい人は、while文について詳しく解説した記事をご覧ください。
ぜひ最後まで読んで、PHP for文の基本を理解してください!
公開日:2017年6月12日
PHP forの書き方
プログラムの処理の中で同じ処理を繰り返しの処理をしたいときがあります。そんなときは、今回紹介するfor文を使いましょう。
For文の構文は次のとおりです。
1 2 3 4 |
//繰り返し処理For文 for([初期化処理];[条件式];[更新式]){ 処理文 } |
[]はオプションです。無くても動きますがfor(;;) は無限ループになりますので、気をつけて使いましょう 。
For文が実際にする処理する流れを見てみましょう。
①カウンター用変数の初期化処理
②条件式の評価
③処理文
④カウンター用変数の更新
⑤2の条件式処理に移動。条件式の評価が「正」の間ループが行われる。「誤」になった場合はfor文を終了する
\文字より動画で学びたいあなたへ/
Udemyで講座を探す >PHP for文を実際に使ってみよう
では、実際に簡単なプログラムの動きを見てみましょう。次に示すサンプルソースコード1では、0〜10 を順番に出力する例です。
1 2 3 4 |
//サンプルソースコード1 for($i=0;$i<=10;$i++){ print $i."<br>"; } |
1 2 3 4 5 6 7 8 9 10 11 12 |
//サンプルソースコード1の実行結果 0 1 2 3 4 5 6 7 8 9 10 |
For文の流れ
①初期化処理:ループ制御に使う「変数i」が「0」で初期化される
②条件式の評価:iが10以下の間はループを実施、現在iは「0」である
③処理を実施:printで、コンソール画面上に「変数i」を出力
④更新式を実施:変数iに1を足して変数iを更新する
⑤2の条件式処理に移動し、条件式の評価が「正」の間ループが行われる。「誤」になった場合終了する。
PHP for文におけるbreak
for文のループ処理の途中で,特定の条件になったら処理を中断したい時には「break」文を使用します。
構文は以下の通りです。
1 2 3 4 |
for([初期化処理];[条件式];[更新式]){ //繰り返し行う処理 break; //現在のループ処理を終了し、forのループ処理から抜ける。 } |
break文が実施されると現在のループ処理を強制終了し、for文から抜ける処理になります。
それでは、簡単なプログラム見てみましょう。
次のサンプルソースコード2は、サンプルソースコード1にbreak文を追加したものです。
変数iが5のときbreakが実施されます。
1 2 3 4 5 6 7 |
//サンプルソースコード2 for($=0; $i<=10; $i++){ if($i==5){//変数iが5のときに実施される。 break;//for文から抜ける。 } print $i."<br>";//変数iの値を出力する。 } |
1 2 3 4 5 6 |
//サンプルソースコード2の実行結果 0 1 2 3 4 |
実行結果を見ると、5以降が出力されていません。変数iが5のときにでbreak処理されfor文の処理から抜けていることがわかります。
この様に特定の処理から抜けるときは、break文を使います。
PHP for文におけるcontinue
先程のbreak文では実施中のループ処理を強制的に終了するものでした。
しかし、ループ処理を終了せず特定周回の処理のみをスキップして欲しいときがあります。そのような場合はcontinue文が有用です。
構文は次の通りです。
1 2 3 4 5 |
for([初期化処理];[条件式];[更新式]){ //繰り返し行う処理1 continue; //次の処理をスキップし、次のループを実施する。 //繰り返し行う処理2 } |
continueが実施されると繰り返し行う処理2の処理がスキップされ次の周回の処理と移動します。
それでは、実際のプログラムを見てみましょう。
サンプルソースコード3は、サンプルソースコード2のbreak文がcontinue文に置き換わったものです。
1 2 3 4 5 6 7 |
//サンプルソースコードの3 for($i=0; $i<=10; $i++){ if($i==5){//変数iが5のとき実施される continue;//以降の処理をスキップし、次のループを実施する } print $i."<br>";//変数iの値を出力する } |
1 2 3 4 5 6 7 8 9 10 |
//サンプルソースコード3の実行結果 1 2 3 4 6 7 8 9 10 |
実行結果をみると、変数iが5のときは、その周回をスキップされ変数iの値が出力されていないことがわかります。また、for文から抜けておらず、6〜10が引き継ぎ出力されていることがわかります。
この様に、continue文を使うことで特定のループ処理をスキップすることが可能です。
PHP for文とwhile文の使い分け
今回勉強したfor文と同じようにで繰り返しの処理ができるものとしてwhile文があります。どういったケースで使い分ければ良いのでしょうか?
for文→繰り返しの処理の回数があらかじめ決まっている
while文→何回繰り返し処理すれば良いかわからない。特定の条件の間のみ実施したい。
※PHP while文を学習したい人は、while文について詳しく解説した記事をご覧ください。
一般的な使い分けとしては上記のようになります。
もちろん、どちらを使っても同じような処理は書けます。プロジェクトによっては指定があったり、使い方に関しては好みの問題であるという人もいます。
それぞれの特徴をきちんと理解し使いこなしていきましょう。
PHPからLaravelまで サーバーサイドをとことんやってみよう【初心者から脱初心者へ】【わかりやすさ最重視】
PHP初歩からLaravelまでをつなぐように知識を網羅しています。連想配列や関数からフォーム(HTTP)/セキュリティ/PDO/クラスなど。composer/名前空間などを使った現代的な開発方法を体験することができます。
\無料でプレビューをチェック!/
講座を見てみる評価:★★★★★
初学者ですが丁寧な説明でわかりやすく、受講しながら手を動かして実際にコードを書くことでより理解が深まります
評価:★★★★★
PHPを書く案件があったので、視聴してみました。
こともなさげに解説されていらっしゃいますが、重要な点を押さえて、効率的に解説されていて、とても助かりました。
他の講座もチェックしてみます!
最新情報・キャンペーン情報発信中