PHP for文 【初級編 第31回】
for文
前回は switch文について記載しました。
今回は for文について記載していきたいと思います。
for文について
同じような内容の処理を毎回記述するのは大変ですが、for文を使用すると簡潔に記述することができます。
for文はループと呼ばれる繰り返しの処理を記述する際に使用します。
例えば 1 を毎回 1 ずつ増やして 10に達するまで処理を繰り返すといったことができます。
for文に記述のしかた
for文は下記のように、for開始時に1度だけおこなう処理(初期化)、繰り返し条件、処理が終わる度に行う処理(増減処理) のように記述して、
その後ろに実際の処理内容を記述します。
for(初期化; 繰り返し条件; 増減処理){ 処理内容; }
for文のサンプル
以下では、$hensuu の値に最初 1 を代入し、その後処理をするたびに値を 1 ずつ増やしていき、10 になったらループを抜けるサンプルです。
<?php for($hensuu = 1; $hensuu <= 10; $hensuu++){ echo "$hensuu<br>"; } ?>
初期化の値を変更
初期化の値だけ変更してみます。
<?php for($hensuu = 5; $hensuu <= 10; $hensuu++){ echo "$hensuu<br>"; } ?>
増減値を変更
1回ループの処理が終わったら $hensuu の値を 2 ずつ増やすようにしてみます。
<?php for($hensuu = 1; $hensuu <= 10; $hensuu += 2){ echo "$hensuu<br>"; } ?>
繰り返し条件を変更
繰り返しの条件を変更してみます。
<?php for($hensuu = 1; $hensuu <= 15; $hensuu++){ echo "$hensuu<br>"; } ?>
処理を複数記述する
処理を複数記述したい場合は , で分けて複数記述することができます。
<?php for($a = 1, $b = 10; $a <= 10; $a++, $b--){ echo "a == $a, b == $b<br>"; } ?>
処理を省略する
下記では 開始時の初期化の処理と値を増減させる処理を for() の中で省略しています。
<?php $a = 1; for(; $a <= 10;){ echo "a == $a<br>"; $a++; } ?>
条件を省略した場合は、無限ループをしてしまうので if文と break を使用して forを抜けるようにします。
繰り返し条件を複数記述する場合の注意点
下記のように繰り返し条件を , で分けて複数記述しても、後半の $a < 10 だけが比較されて $a < 5 は比較されないようです。
ためしに $a < 5 を $a < 15 に変えてみても結果は変わりませんでした。
<?php for($a = 1; $a < 5, $a < 10; $a++){ echo "a == $a<br>"; } ?>
また and や or を使用した場合の挙動も反対になっていました。
<?php for($a = 1, $b = 1; $a <= 5 and $b <= 10; $a++, $b++){ echo "a == $a, b == $b<br>"; }
<?php for($a = 1, $b = 1; $b <= 10 or $a <= 5; $a++, $b++){ echo "a == $a, b == $b<br>"; } ?>