繰り返し - for文
「for文」で繰り返し
- 1つの処理をX回繰り返す「ループ」という発想(繰り返す回数が決まっている)
- 例:5日分の日付を表示→1日分の日付表示を5回繰り返す
- 例:10人分の名簿の印刷→1人分の名簿印刷を10回繰り返す
「for文」で、一定回数の繰り返し処理ができる
- 「ループカウンター」を使って、繰り返し回数を記述する
- 「初期値」「終了条件」「増分値」の3要素がポイント
for( 初期化の式1;繰り返すかを調べる式2;変化のための式3 )
処理;
《1から5まで表示するfor文》
<?php for ( $i = 1; $i <= 5; $i++ ) { echo $i; }
- 「$i++」は、変数「$i」が1ずつ加算する
- for文とwhile文
<?php // ループ(for) /* $i = 0; while ($i < 10) { echo $i; $i++; } */ for ($i = 0; $i < 10; $i++) { echo $i; }
- 「$i=0; 」か「$i=1; 」の判断は、カウンター変数の値の回数のみを利用する場合は「$i=0; 」
- 表示に利用する場合は必然性に合わせて「$i=1; 」の「1」が変わります
《例:連続した5日分の日付を表示する》
<?php for ( $i = 17; $i <= 21; $i++ ) { echo '6月' . $i . '日<br>'; }
《例:指定個数の画像を表示する》
<?php $num = 10; for ( $i = 1; $i <= $num; $i++ ) { echo '<img src="img/' . $i . '.jpg"><br>' . "\n"; }
「ループカウンター」を活用する
- PHP関数のパラメータに「ループカウンター」を埋め込む
指定した5日分の日付を表示する
- 2月~3月にまたがる5日分
- 「ループカウンター」は、(-2, -1, 0 ,1, 2)となります
- 2月30日はないので、29日が「0:基準」になります
《2016年7月3日までの7日間を表示》
<?php for ( $i = -3; $i <= 3; $i++ ) { echo date ( 'Y-m-d', mktime ( 0, 0, 0, 7, $i, 2016 ) ) . "<br>\n"; }
今日から5日分の日付を表示する
<?php for ( $i = 0; $i < 5; $i++ ) { echo date ( 'Y-m-d', strtotime ( +$i .' day' ) ) . "<br>\n"; }