ある処理を繰り返し実行するには制御構文のループを使います。
ループ文には必ずループを終了する条件があります。もしこの条件がなければ無限ループに陥ります。
無限ループは同じ命令を繰り返し永遠に終わらない状態をいいます。これはコンピュータに負荷を与え、最悪はフリーズなどを引き起こす原因にもなります。
for文
for文はループ文の中でも使用頻度の高い構文です。条件設定がfor()の中にまとまっていて直感的にも分かりやすい構文です。
for(初期化式; ループ継続条件 ; 増分){
繰り返し実行する処理;
}
for ($i = 0;$i < count($date); $i++){ echo '<li>'.$data[$i].'</li>' ; }
while文
while文がfor文と違う点は構文の中にカウンタ変数の仕組みがない点です。while文はループを継続するための条件式があるだけです。この記述方法はif文とよく似ています。if文は条件を満たせば一度だけ命令文を実行しますが、while文は条件が満たされている間中何度も繰り返し命令を実行します。while文は必ず命令文にカウンタの役割をするものを置き、条件結果をfalseにするようにしなければなりません。そのため、while文は無限ループに気をつけなければなりません。
while(条件式){
繰り返し実行する処理;
増減式;
}
while ($i < count($date)){ echo '<li>'.$data[$i].'</li>' ; $i++; }
foreach文
foreach命令は配列とセットで利用することに特化した、特別な命令文です。配列の中のデータを、未読の要素がなくなるまで順番に取り出します。
foreach(配列 as 仮変数){
繰り返し実行する処理;
}
foreach ($date as $d){ echo '<li>'.$d.'</li>' ; }
連想配列のforeach文
連想配列のデータを展開するにはforeach命令文を使用します。
foreach(連想配列 as キー変数 => 値変数){
繰り返し実行する処理;
}
foreach ($date as $name => $value){ echo '<li>'.$name.'</li>' ; echo '<li>'.$value.'</li>' ; }
ループ文の使い分け
- for文
- 繰り返しの回数を具体的に推定出来る場合に使用
- while文
- 繰り返しによって条件式のtrueとfalseを変化させる場合
- foreach文
- 配列の内容を順番に処理したい場合
$_POSTや$_GETのスーパーグローバル変数も連想配列になっています。