PHPにおけるループ処理while

繰り返し処理はプログラミングの基本中の基本です。そこで、PHPで繰り返し処理をおこなう方法を紹介します。繰り返しにはいろいろありますが、基本である「while関数」を紹介します。

while文

まず、while文の書式は以下のようになります。

while(条件式){
繰り返す処理
}

試しに以下のようなプログラムを作ってみます。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>whileの使い方</title>
</head>
<body>
<?php
$a=0;    //$aの初期値は0
while($a<10){   //$a<10の間は続ける
    $a=$a+1;    //$aをインクリメント
    echo $a.'<br />';    //$a<br />を表示
}
?>
</body>
</html>

このプログラムを実行すると、 1から10の文字が表示されます。

1
2
3
4
5
6
7
8
9
10

条件$a<10の間は

  • $aを1繰り上げ
  • $a<br />を出力する

という処理をくりかえします。そして、 $a<10を満たさなくなるとき、つまり$aが10になったときに処理が終了します。

無限ループ

while(true){
処理
}

とすると無限ループになります。無限ループにすると、サーバーへの負担が大きいので注意しましょう。もし、無限ループのあるページにアクセスが集まれば、きっと恐ろしいことになるでしょう。ただ、PHPをテストして無限ループに落ち入っても、ある程度処理が続けば自動で処理を終了してくれるそうです。

whileを抜ける方法としてbreakがあります。例えば先ほどのプログラムは

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>whileの使い方</title>
</head>
<body>
<?php
$a=0;            //初期化
while(true){     //無限ループ
if($a>10)break;  //もし$a>10ならループを抜ける
$a=$a+1;         //$aをインクリメント
echo $a.'<br />';//$a<br />を表示
}
?>
</body>
</html>

として書くことができます。無限ループがありますが、if文とbreak関数を使って、$a>10となったらループを抜けるようにしてあります。

著者:安井 真人(やすい まさと)