whileを利用した繰り返し処理

繰り返し while文

  • 繰り返し(ループ)
  • while文は、「条件が合致している間はその処理を繰り返す」という構文
  • ifは「もし〜だったら」、whileは「〜の間は」
while文の書き方


while ( 条件式 ) {
  条件を満たす場合の処理
  条件判定が最終的に偽になる変更を入れる
}

<?php get_header(); ?>

<?php
$month = 1;
while ( $month <= 12 ) {
  echo $month . '';
  $month++;
}
?>

<?php get_footer(); ?>
  • 条件の記述:$monthが12以下の間は処理を行う
  • 処理の記述:文字列「月」を、$monthの値「1〜12」の後ろにつけて出力する
  • 条件判定に影響する変更:$monthの値を1増やす
  • $monthが、13以上になっtら終了(13月は、出力されない)


無限ループに注意
  • whileを使うときは、いわゆる「無限ループ」に注意が必要


whileで繰り返しを行う要素

  1. 繰り返し処理を行う条件を記述する
  2. 繰り返しを行う処理を記述する
  3. 繰り返し処理の条件が最終的に必ず「偽」になるようにする(繰り返しが終わるようにする)
「:」コロンを使ったwhileの表記方法


while ( 条件式 ) :
  条件を満たす場合の動作
  条件判定が最終的に偽になる変更を入れる
endwhile;


《例》

<?php get_header(); ?>

<?php
$month = 1;
while ( $month <= 12 ) :
  echo $month . '';
  $month++;
endwhile;
?>

<?php get_footer(); ?>


whileの条件を柔軟に設定する

  • $monthと現在の月を比較して、現在の月まで繰り返し処理を実行する
<?php get_header(); ?>

<?php
$month = 1;
$end = date('n');
while ( $month <= $end ) {
	echo $month . '';
	$month++;
}
?>

<?php get_footer(); ?>

WordPressでのwhileの使用例

  • WordPressでの「ループ」は、次のようなwhile文を指します
<?php while ( have_posts() ) : the_post(); ?>
  <?php the_title(); ?>
  <?php the_content(); ?>
<?php endwhile; ?>
  • これは、WordPressの記事の取得し、記事タイトルと本文を表示するというループ
  • 「have_posts()」は、WordPress関数
  • 「表示する投稿を抽出したデータ内に、残りの投稿があるかどうか」を判定し、投稿があればtrue、なければfalseを返します
  • つまり、「have_posts()」と書くだけで「投稿があるかどうか」を判定する条件となります
  • 「the_post()」は、「投稿をまとめたデータから最初の投稿を取り出し、元のデータからその投稿を取り除く」という処理を実行
  • 「the_title()」は、記事タイトルを「the_content()」は本文を表示する