PHP入門 | 制御構文 | for文による複雑な繰り返し
繰り返し構文では、whileよりもforという構文がよく使われる。これは単純な条件設定だけでなく、初期化や繰り返し後の処理までまとめて設定できる構文である。
for (初期化処理; 条件; 繰り返し後の処理) {
...... 繰り返し処理 ......
}
中括弧の代わりにコロン(:)とendforを使うこともできる。
for (初期化処理; 条件; 繰り返し後の処理):
...... 繰り返し処理 ......
endfor;
このfor文では、次の括弧の中に3つの要素を記述する。
- 1つ目は、繰り返しを開始する前に実行するもので、変数に値を代入したり、繰り返しの準備をしたりする。
- 2つ目は繰り返し条件である。ここに書いた式や値がtrueであれば繰り返しを続ける。falseになると繰り返しを抜ける。
- 3つ目は、繰り返し部分の処理を実行した後、次の繰り返しへ進む前に行う処理である。いわば「繰り返し後の処理」であり、主に繰り返しごとに変数の値を増減させるために使われる。
このfor文は記述する要素が多いため、実際に何度も書いて使い方に慣れてほしい。
以下の例を見てみよう。
<?php
$total = 0;
for($i = 1;$i <= 100;$i++){
$total += $i;
}
?>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>sample page</title>
</head>
<body>
<h1>Hello PHP!</h1>
<div>
<?php echo "合計 : " . $total; ?>
</div>
</body>
</html>
これは先ほどのwhileサンプルを、forを使う形に書き直したものである。ここでは次のようにforを書いている。
for ($i = 1; $i <= 100; $i ++) {...... 中略 ......}
まず繰り返しに入る前に$i = 1を実行し、変数$iに1を代入しておく。そして$i <= 100がtrueである間、つまり$iが100以下である間は繰り返しを続ける。さらに繰り返しのたびに$i++を実行し、$iの値を1増やす。
このように変数$iが1から順に2、3……と増えながら繰り返しを続け、100を超えると繰り返しを抜けるようになっている。
forはwhileより難しいが、これを使うと繰り返しのために余計な処理を書く必要がなくなり、スクリプトをすっきり書けるようになる。