こんにちは、
寒くなりましたが、私は東北出身で寒さに鈍感なので日々薄着のサトウです。
さて、本題に入りたいと思います。
php言語では繰り返し処理(ループ処理)をするために、「for文」を使うケースがよくあります。phpを学び始めた方は目にしたこともある方もいらっしゃるのではないでしょうか。
for文を使用すると繰り返し同じ処理をする時に書くコード量を減らし、効率的に実行できるので非常に便利です。
今回は「for文」の書き方や「使用する場面」について分かりやすく説明していきます。
phpを学び始めた方や、「ループ処理」や「for文」 について分からない方は、是非読んでみてくださいね。
繰り返し(ループ)処理の必要性
プログラミングでは、数式や数値・文字列を繰り返し使用するケースが多くあります。
例えば「変数に1ずつ数字を加算して画面処理していく」といった処理をする場合、
「繰返し(ループ)処理」を使わないとどうなるか考えてみましょう。
コード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php //変数内の数値に1を足していく処理 // $num に0を入れて初期化 //順に$numに1ずつ数字を加算して、1を表示していく $num = 0; $num1 = $num + 1; echo $num1.'<br>';//結果は1 $num2 = $num1 + 1; echo $num2.'<br>';//結果は2 $num3 = $num2 + 1; echo $num3.'<br>';//結果は3 $num4 = $num3 + 1; echo $num4.'<br>';//結果は4 $num5 = $num4 + 1; echo $num5.'<br>';//結果は5 ?> |
実行結果
変数$numに都度「1」を加算して、echoで表示することで書くコード量が多くなってしまっていますよね。
「ループ処理」はこういった同じような処理を繰り返す際、それをまとめて書ける方法です。同じ内容を何度も書くことは非効率ですし自分以外の第三者がコードを読んだ時に可読性(コードの読みやすさ)も下がってしまいますよね。「ループ処理」の書き方を覚えば、繰返し処理をする際により少ないコード量で読みやすいコードを書くことができるようになります。
この記事ではループ処理で使用場面が多いfor文を中身に解説していきます。
for文の書き方
ここからはfor文の実際に書き方を確認していきます。
for文
for文の基本的な書き方は以下のとおりです。
for(初期値;条件式;増減式){
//処理内容
}
初期値:変数名 = 0;のように繰り返し処理の開始時に変数を初期化する処理を書きます。
条件式:処理を繰り返すまでの条件を記載します。(変数が7以下になるまで→変数名 <= 7 )
増減式:数値を加算していく場合:「変数名++」、数値を減産していく場合:「変数名–」といった書き方をします。
※変数名の定義に厳格なルールはありませんが、for文であれば「i」と書く場合が慣例です。
実際に数字を適用してコードを確認してみます。
コード例
数字を1ずつ加算して0〜10までの数字を表示する場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php //数字を1ずつ加算して0〜10までの数字を表示する場合 // 初期値:$i = 0;で初期化 // 条件式:$iの値が10になるまで繰り返し処理 // 増減式:$iに1ずつ値を加算していく for($i= 0;$i<=10;$i++){ echo $i.'<br>'; } ?> |
このようにたった二行で要件を満たすコードを書くことができました。
phpでは他にもループ処理できる書き方があります。
for文との違いと比較しながら確認してみましょう。
while文
while文は、指定した条件式が真(true)間、繰返し処理を実行します。
while(条件式){
実行する処理;
}
条件式:if文と同じく「変数名 == 10」や「変数名 > 15」といった比較演算子を記述します。
実行する処理:条件式が真(TRUE)だった場合、while内に記述された処理を実行します。
コード例
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php //条件式 $i = 0; //$iが5以下なら実行 while($i <= 5){ echo $i.'<br>'; $i++; } ?> |
実行結果
ループ処理をはじめたばかりだと「for文」と「while文」の違いが分かりにくい部分があるかもしれません。
その場合は「ループする回数が決まっているか」で使い分けるのが良いです。
for文とwhile文の違い
・for文:繰返しする回数決まっている場合
・while文:条件を優先的に繰返し処理をしたい場合
是非試しに書いて結果を確認してみてください。
foreach文
「for」と「while」以外にもループできる書き方もあります。
配列の中身を表示していきたい時にはforeachを使います。
配列:変数の箱の中身に番号が割り振られたもの。番号を指定することで、その箱の中身を取り出し可能
連想配列:配列の「番号」の代わりに名前を付けて管理できるもの
foreach(配列 as $value){
実行する処理
}
配列 as $value:配列には定義した配列名を書きます。as $valueは「配列の中身(値:value)を空けていく」という意味です。
実行する処理:画面出力処理の場合はechoやprintを使います。
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php //配列を定義 //配列$sportsに中身を入れます。 $sports = array('tennis','basketball','soccer'); //foreachで中身を表示 foreach($sports as $value){ echo $value.'<br>'; } ?> |
実行結果
通常の配列と同様に、連想配列もforeachで展開できます。
連想配列の場合は配列の番号にあたる「$key」の記載も必要です。
foreach(配列 as $key => $value){
実行する処理
}
配列 :配列には定義した配列名を書きます。
as $key => $valueは「$key」という名前が番号がついた「配列の中身(値:value)を空けていく」という意です。
実行する処理:画面出力処理の場合はechoやprintを使います。
コード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php //連想配列を定義 //配列$sportsに中身を入れます。 $sports = array( '種目1' => 'tennis', '種目2' => 'basketball', '種目3' => 'soccer'); //foreachで中身を表示 //書き方:配列名 as $key => $value; //$key:配列の箱番号「種目」 //$value:配列の箱の中身「スポーツ名」 foreach($sports as $key => $value){ echo '配列の番号は'.$key.'です。配列の中身は'.$value.'です。<br>'; } ?> |
実行結果
配列、連想配列ともにforeachで中身を表示できることが分かりましたね。
foreachではデータベースからデータを取得する時などに便利です。プログラミングを学習したばかりだとイメージしにくい部分もあると思うので、ここではforeachの書き方と処理内容をイメージできれば大丈夫です。是非ご自身でも手を動かして試してみてください。
参考:JavaScript言語でのfor文の書き方
ループ処理は他のプログラミング言語でも使用される場面があります。
ここでは参考までにJavaScript言語での書き方も説明します。
コード例
1 2 3 |
for (var i = 0; i <= 10; i++) { console.log(i); } |
JavaScriptでは変数を定義する時にが「var」を使用します。
他はphp言語とほぼ同じ書き方になります。
実行結果
※webブラウザのConsole(コンソール)で表示しています。
まとめ
いかがでしたか?今回は、phpで「for文」を使ってループ処理について解説しました。
プログラミングを学び始めた頃は「ループ処理(繰り返し処理)」する必要性やfor文の書き方等理解しにくい部分もあると思います。
習得していくには「実際に数値を当てはめてみて細かく確認する(1〜5までループさせる、等)」のが近道です。量をこなしていけば、簡単に使えることができる日が来ると思うので、焦らずにゆっくりと理解を深めていってくださいね。
この記事が、phpの学習に役立つと嬉しいです。