for
for文
for文はループ(繰り返し処理)を実現する文ですが、慣れないうちはややこしいかもしれません。
ループ開始時の処理、ループを継続する条件、ループ実行後の処理を一度に記述する事ができます。
このfor文も条件式を論理型(TRUEもしくはFALSE)で判定していますが、判定は各ループ処理の最初に行われます。
基本の構文
for文の括弧「()」内に開始時の処理・条件式・実行後の処理をセミコロン「;」で区切って記述します。
「開始時の処理」は無条件に実行されます。
「条件式」の値がTRUEの場合、ループ処理を実行しつづけます。「条件式」がFALSEの時はループ処理の実行を終了します。
ループ処理の後に「実行後の処理」を実行します。
for文も複数のループ処理がある場合にはブロックを大括弧「{}」で括ります。
使用方法:
for( 開始時の処理; 条件式; 実行後の処理 )
ループ処理;
サンプル:1から10までの数を出力(for文)
<?php
for( $i = 1; $i<= 10; $i++ ){
echo $i."<br>\n"; //改行しながら値を表示
}
?>
出力結果
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
処理の複数記述
括弧「()」内の各式は複数ある場合にカンマ「,」で区切って複数の指定をする事ができます。
サンプル:開始時の処理・実行後の処理の複数記述
<?php
for( $i = 0, $a = 1; $i <= 10; $i++, $a *= 2 ){
echo $a."<br>\n"; //改行しながら値を出力
}
?>
出力結果
1
2
4
8
16
32
64
128
256
512
1024
2
4
8
16
32
64
128
256
512
1024
サンプル:すべての処理の複数記述
<?php
//上のサンプルに、$aが100以上なら処理をやめるスクリプトを追加
for( $i = 0, $a = 1; $i <= 10, $a < 100; $i++, $a *= 2 ){
echo $a."<br>\n";
}
?>
出力結果
1
2
4
8
16
32
64
2
4
8
16
32
64
サンプル:実行後の処理に出力処理までを加えた場合
<?php
for ( $i = 1; $i <= 10; print $i, $i++ );
?>
出力結果
12345678910
このサンプルの場合、print()をecho()に変えるとエラーが出ますので注意して下さい。
空の式
括弧「()」内の各式は空にする事ができますが、条件式を空にした場合は無限ループが発生します。そーゆー場合はbreak文などでループを終了させます。式を空にできるからといってむやみに使うのは好ましくないのでしょーが、一応こんな書き方もできる、くらいで紹介しておきます。
サンプル:条件式以外の式を空にする
<?php
$i = 1;
for( ; $i <= 10; ){
echo $i++;
}
?>
出力結果
12345678910
サンプル:すべての式を空にする
<?php
$i = 1;
for( ; ; ){
if( $i > 10 ){
break;
}
echo $i++;
}
?>
出力結果
12345678910


