PHPを学び始めて、まず最初につまづくトラップがループ処理じゃないかと思います。
40代でプログラミング学習スタートした私も、ここで、モヤっとしました。
ループ処理のfor文とwhile文の違いと使い方を解説します。
ループ処理とは
繰り返し処理のことです。
たとえば、下記のように表示したいとします。
すると、このようにコードを書かなきゃいけなくて大変です。
- echo “1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>”;
ループ処理を使えば、繰り返しの処理を簡潔に書くことができます。
for構文とwhile構文
PHPのループ処理にはfor構文とwhile構文があります。
(もうひとつ、foreach構文もありますが、これは別の記事で説明します。)
for構文
for構文とは、このような構文
先ほどの画面をfor構文を使って書くと、こうなります。
- for ($i=1; $i<=10; $i++){
- echo $i.‘<br>’;
- }
forの後のカッコ内のコードの意味は、こちら。
- 数字は、変数「$i」を使って表示します。$i は、最初、1としておきます。
- $iは10以下の数です。
- $は、ループを繰り返すごとに1個ずつ増やしていきます。
while構文
先ほどの画面をwhile構文を使うと、こうなります。
- $i = 1; while($i <= 10){
- echo $i.‘<br>’;
- $i = $i+1;
- }
for構文と違い、while構文がスタートする前に変数を「$i = 1;」と定義しています。
そのあとのコードの意味は、こちら。
- $iは10以下の数です。
- $iを表示させます。
- そのあと、$iの値を1個ずつ増やしていきます。
私の間違ったコードの書き方
ちなみに私は、最初、こんなふうにコードを書いていました。
- $i = 1; while($i <= 10){
- $num = $i++;
- echo $num.‘<br>’;
- }
プログラマの旦那に見せたところ
これは・・・高度な書き方だけど、書き方分かって書いているの?
と、また、イヤミだか本心だか分からないコメントが。
正直、どこかで見た記憶を頼りに書いただけですが、どうやら、「繰り返したい処理」の前に変数をいれるという特殊な書き方をしていたようです。
問題なく動いたので「よっしゃ♪」と思っていましたが、動いたからOKってものではないようで。
旦那によると、
意味が分からずコードを書いていると、おかしなことが起こっても直せないからよくない。
とのこと。
「確かになぁ」と感じたので、本記事でもシェアさせていただきます。
for構文とwhile構文の違い
見てきた通り、for構文とwhile構文は、同じような用途で使えます。
どちらかというと、for構文のほうが短く記述出来て便利ですよね。
ただ、更新処理が長くて複雑な場合、for構文は向きません。
forの後のカッコ部分に複雑なコードを書くと、ごちゃごちゃになります。
そういったときにはwhile構文が良い。
まとめると、次のとおりです。
参考教材のご紹介
私はPaiza(パイザ)、Progate(プロゲート)、PHPに関する本や各種動画を使ってPHPを学んでいます。
今回の説明で一番参考にさせて頂いたのは、Udemyという動画教材のPHP+MySQL(MariaDB) Webサーバーサイドプログラミング入門という講座です。
Udemyへは、下記をクリック
↓↓↓
講師のたにぐち先生はPHPに関する本「よくわかるPHPの教科書 【PHP7対応版】」も出版していて、こちらも分かりやすいです。