読者です 読者をやめる 読者になる 読者になる

Webデザインの勉強 ハロートレーニング 受講生のためのWebデザインの勉強補足ブログ

繰り返し - for文

「for文」で繰り返し

  • 1つの処理をX回繰り返す「ループ」という発想
  • 例:5日分の日付を表示→1日分の日付表示を5回繰り返す
  • 例:10人分の名簿の印刷→1人分の名簿印刷を10回繰り返す
「for文」で、一定回数の繰り返し処理ができる
  • 「ループカウンター」を使って、繰り返し回数を記述する
  • 「初期値」「終了条件」「増分値」の3要素がポイント



for(初期化の式1;繰り返すかを調べる式2;変化のための式3)
  処理;



《1から5まで表示するfor文》

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>for文の練習</title>
</head>
<body>
<?php
for ( $i = 1; $i <= 5; $i++ ) {
  echo $i;
}
?>
</body>
</html>
  • 「$i++」は、変数「$i」が1ずつ加算する



この場合、出力された文字列がつながって表示されます。
改行も含めて出力する場合には、以下のような記述になります。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>for文を使う</title>
</head>
<body>
<?php 
  //変数$iを1つずつ増やしながら$i<5がfalseとなるまで
  for ( $i=0; $i<5; $i++ ) {
  //以下の文が繰り返されます
    echo '商品を表示します。<br>' . "\n"; 
  }
  echo '商品は以上です。' . "\n";
?>
</body>
</html> 
  • 「$i=0; 」か「$i=1; 」の判断は、カウンター変数の値の回数のみを利用する場合は「$i=0; 」
  • 表示に利用する場合は必然性に合わせて「$i=1; 」の「1」が変わります

例えば、以下の場合は「$i=17; 」から「$i <= 21」までの間を繰り返す命令になります。

連続した日付を扱う
  • 例:連続した5日分の日付を表示する
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>for文を使う</title>
</head>
<body>
<?php
for ( $i = 17; $i <= 21; $i++ ) {
  echo '9月' . $i . '日<br>';
}
?>
</body>
</html> 
  • 例:商品1からを表示する
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>繰り返し回数を出力する</title>
</head>
<body>
<?php
  for ( $i = 1; $i <= 5; $i++ ) {
    echo '商品 ' . $i . ' を表示します。<br>' . "\n";
  }
  echo '商品は以上です。' . "\n";
?>
</body>
</html> 
  • 例:商品1からを画像も含めて表組で表示する
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>繰り返し回数を出力する</title>
</head>
<body>
<table border="1">
<tr><th>イメージ</th><th>商品名</th></tr>
<?php 
for ( $i = 1; $i <= 5; $i++ ) {
   echo '<tr>';
   echo '<td><img src="img/' . $i . '.jpg"></td><td>商品' . $i . '</td>';
   echo '</tr>' . "\n";
}
?>
</table>
</body>
</html> 
  • 指定個数の画像を表示する
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>指定個数の画像を表示する</title>
</head>
<body>
<?php 
$num = 10;

  for ( $i = 1; $i <= $num; $i++ ) {
    echo '<img src="img/' . $i . '.jpg"><br>' . "\n";
  }
?>
</body>
</html> 
「ループカウンター」を活用する
  • PHP関数のパラメータに「ループカウンター」を埋め込む


指定した5日分の日付を表示する

  • 2月〜3月にまたがる5日分
  • 「ループカウンター」は、(-2, -1, 0 ,1, 2)となります
  • 2月30日はないので、29日が「0:基準」になります
<?php
for ( $i = -2; $i <= 2; $i++ ) {
  echo date ( 'Y-m-d', mktime ( 0, 0, 0, 9, $i, 2013 ) ) . '<br>' . "\n";
}


今日から5日分の日付を表示する

  • 2月〜3月にまたがる5日分
  • 「ループカウンター」は、(-2, -1, 0 ,1, 2)となります
  • 2月30日はないので、29日が「0:基準」になります
<?php
for ( $i = 0; $i < 5; $i++ ) {
  echo date ( 'Y-m-d', strtotime ( "+$i" .' day' ) ) . '<br>' . "\n";
}


広告を非表示にする