PHP入門というシリーズ – 第五回

2018年5月1日

第四回から少し間が空いてしまいましたが、今回は「繰り返し」について勉強していきましょう。

繰り返し処理とは

繰り返し処理というのは、その名の通り何かの処理を繰り返す事を言います。

例えばよくある問い合わせフォームで「年齢」とか「生年月日」という欄がありますね。もし年齢の欄を作ろうと思った時、HTMLしか知らなかった時はこんな具合で書いていたと思います。

<select name="age">
    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
    <option value="24">24</option>
    <option value="25">25</option>
    <option value="26">26</option>
    <option value="27">27</option>
    <option value="28">28</option>
    <option value="29">29</option>
    <option value="30">30</option>
    <option value="31">31</option>
    <option value="32">32</option>
    <option value="33">33</option>
    <option value="34">34</option>
    <option value="35">35</option>
    <option value="36">36</option>
    <option value="37">37</option>
    <option value="38">38</option>
    <option value="39">39</option>
    <option value="40">40</option>
</select>

20歳〜40歳までのフォームでもこれだけ書かないといけないのに、これが仮に20歳から80歳まで選択出来るようにしないとならない場合は、HTMLだけで何行使うんだよという事になりますよね。

こんな時に使えるのが繰り返し処理というものです。書き方はこちら。

<select name="age">
    <?php
        for($i=20; $i<=80; $i++){
    ?>
    <option value="<?php echo $i; ?>"><?php echo $i; ?></option>
    <?php
        }
    ?>
</select>

たったこれだけで20歳〜80歳まで選択出来るリストが出来上がります。ソースも短いし簡単だしいいとこだらけですね。

ざっくり解説

繰り返し処理の基本形はfor文と呼ばれるものを使って書きます。forって書いてありますよね。

今回は20歳〜80歳まで選択出来るリストを作りたかったので、考え方としては

  • 20歳から始める
  • 80歳まで繰り返す
  • 繰り返したい処理はoptionタグの出力
  • 80歳まで行ったら繰り返し処理を終わらせる

となるわけです。

変数$iを使って繰り返す

別にこれ$iじゃなくてもいいんですが、一般的に$iを使うのでこう書いています。なんで「i」なのかって恐らく「integer(整数)」から来てるんじゃないかなと思いますが深く考えなくていいです。繰り返し処理の基本構文は

for($i=開始の値; 繰り返す条件(今回は80歳までなので$i<=80); 一度の処理が終わったらどうするか){
    //繰り返す内容
}

こんな具合です。

forは繰り返す回数が決まっている場合に使う

今回のように20歳〜80歳までというように繰り返す回数が決まっている場合はforを使います。

しかし世の中には回数が不明なものもあるわけです。

例えばRPGの主人公が魔王を倒す時。勇者DEMOYAが毎回決まった攻撃力ならいいですが、RPGというのは攻撃力もランダムなので、魔王のHPをゼロにするまで何回攻撃しないとならないのかわからないですよね。

でも魔王をやっつけるまで攻撃は繰り返さないといけませんので、繰り返す条件は「魔王のHPがゼロ以下になるまで」という条件になります。この場合、for文では指定出来ない為、whileという別の書き方をしてあげる必要があります。

それでは次回、while文について学びましょう。