作成日:2017-12-04, 更新日:2017-12-04
基本
おおざっぱに言うと、下記の2タイプある。
・条件を満たす間、繰り返す。
・配列(オブジェクト)がある限り、繰り返す。
条件を満たす間、繰り返す
for()
for ($i=0; $i<10; $i++) { ~処理~ }
上記は
・「$i」の初期値は「0」
・「$iが10未満」のとき、処理実行
・処理後、「$i」を「+1」
のような処理。
while()
「while (条件){}」で「条件が真なら実行」となる。
そのため、「条件が偽」のときはループ処理が走らないコトもある。
$flag = true; while ($flag) { ~処理~ if (条件) { $flag = false; } }
上記は
・「$flag」が「true」の間、処理実行。
※無限ループに陥りやすいので回数指定したほうがいいかも。
▼無限ループ対策に回数指定を追加
$i = 0; $flag = true; while ($flag) { ~処理~ if (条件 || 10<$i) { $flag = false; } $i++; }
do-while()
「while()」は「条件が真なら実行」となるが、「do-while()」はひとまずループ処理実行って形になる。
※「while()」同様、無限ループに陥りやすいので回数指定したほうがいいかも。
$i = 0; $flag = true; do { ~処理~ if (条件 || 10<$i) { $flag = false; } $i++; } while ($flag);
違い:while()とdo-while()
似たようなループ処理。
・「while()」は、条件チェックをしてから、ループ処理。
・「do-while()」は、ループ処理をしてから、条件チェック。
▼while():条件チェック(while ($flag))→「$i++」が走らない→「$i」は「0」
$i = 0; $flag = false; while ($flag) { $i++; $flag = false; } echo $i;
▼do-while():「$i++」が実行→条件チェック(while ($flag))→「$i」は「1」
$i = 0; $flag = false; do { $i++; $flag = false; } while ($flag); echo $i;
配列(オブジェクト)がある限り、繰り返す
foreach()
ループ内でキー(添え字)不要、値のみ使う
$ary = array(〇〇〇, 〇〇〇, 〇〇〇, 〇〇〇, 〇〇〇); foreach ($ary as $val) { echo '値:' . $val . "\n"; }
ループ内でキー(添え字)必要、値も使う
$ary = array( □□□ => 〇〇〇, □□□ => 〇〇〇, □□□ => 〇〇〇, ); foreach ($ary as $key=>$val) { echo 'キー(添え字):' . $key . "\n"; echo '値:' . $val . "\n"; }