本日の勉強は、ループ(for,foreach,while,do〜while)文を使ったPHPプログラミングです。
前回は、「IF文」を使ったプログラミングでした。
PHPのループには、4通りの方法があります。
1.for
2.foreach
3.while
4.do〜while
この4通りの方法について、説明を致します。
sampleloop.php
<?php // LOOP1 echo "LOOP1 START<br>"; for ($i = 1; $i <= 10; $i++) { echo $i ; echo '<br>'; } echo "LOOP1 END<br>"; // LOOP2 echo "LOOP2 START<br>"; $arr = array(1, 2, 3, 4); foreach ($arr as &$val) { $val = $val * 2; echo $val ; echo '<br>'; } echo "LOOP2 END<br>"; // LOOP3 echo "LOOP3 START<br>"; $arr1 = array( "one" => 1, "two" => 2, "three" => 3, "seventteen" => 17 ); foreach ($arr1 as $k => $v) { echo "\$arr1[$k] => $v<br>"; } echo "LOOP3 END<br>"; // LOOP4 echo "LOOP4 START<br>"; $arr2 = array(); $arr2[0][0] = "a"; $arr2[0][1] = "b"; $arr2[1][0] = "y"; $arr2[1][1] = "z"; foreach ($arr2 as $v1) { foreach ($v1 as $v2) { echo "$v2<br>"; } } echo "LOOP4 END<br>"; // LOOP5 echo "LOOP5 START<br>"; $count = 0; while ($count <= 5) { if ($count > 3) { break; } echo $count."<br>"; $count++; } echo "LOOP5 END<br>"; // LOOP6 echo "LOOP6 START<br>"; $num = 0; do{ print 'num = '.$num.'<br />'; $num += 1; }while ($num < 3); echo "LOOP6 END<br>";
実施結果
http://localhost:8080/sampleloop.php
LOOP1 START 1 2 3 4 5 6 7 8 9 10 LOOP1 END LOOP2 START 2 4 6 8 LOOP2 END LOOP3 START $arr1[one] => 1 $arr1[two] => 2 $arr1[three] => 3 $arr1[seventteen] => 17 LOOP3 END LOOP4 START a b y z LOOP4 END LOOP5 START 0 1 2 3 LOOP5 END LOOP6 START num = 0 num = 1 num = 2 LOOP6 END
プログラミンを見てわかると思いますが、
「for,while,do〜while」の方はループする回数を明確にして、カウントをアップする必要があります。
「foreach」の方は設定している数分のみループし、カウントアップが必要ない。
「do〜while」の方は条件式が処理後にあるので必ず1回は処理を行う。
この様にループ文には特徴があり、どのような処理を行うかで選択してください。
ループ文で汎用的且つ、バグ(間違い)をなくすためにおすすめするのは「foreach」です。
随時、ループの回数が変わった場合、「for,while,do〜while」はループカウントを書き換えなければなりません。
しかし「foreach」は、設定している数分のみループするので書き換えが不要です。
なので、ループ回数が変わっても、書き換えが不要な「foreach」を使うことをおすすめします。
「foreach」の方法は、LOOP2〜LOOP4なので、参考になればと思います。
50歳の私と一緒にプログラミングの勉強を始めませんか?