繰り返し - 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";
}