同じ処理を何度も繰り返したい場合は、ループ構文を利用します。
ループ構造を実現するためにfor文やwhile文を利用します。
同じ処理を繰り返した方が効率が良い場合、カウンター的に使う場合
など、繰り返し構文は良く使われます。
5.1 for文
for ( 式1 ; 式2 ; 式3 ){
ループの内容
}
式1・・・処理の前に一度だけ行う下準備。
変数の初期化、スタート値。
式2・・・比較式で、式1で指定した変数が、
どういう条件の時THRUになるか指定する。
終わりを指定する。
式3・・・式1で指定した変数を増減させる値
の指定。
例えば
for($i = 1 ; $i<=10 ; $i++){
echo "($i)".<br>;
}
処理の順番は、
①式1$i=1で$iに1を入れてます(初期化)。
②式2$i<=10で$iが10以下の場合THRUを出してます。
10を超えるるとFLASEになり{}を抜けます。
③式3$i++で$iを1プラスしています。
④echoで()付$iの値を表示しています。
⑤再度②へ進みます。
スポンサーリンク
while文
while文も繰り返し処理をするのは同じです。
先ほどのfor文の処理をwhileでプログラミングすると、
以下の通りとなります。
$i=1;
while($i<=10){
echo "($i)"."<br>";
$i++;
}
whileでは条件式のみ指定するために、
繰り返すための変数の初期化や増減については別途指定する必要がある。
これを間違うと無限ループに陥るので注意が必要。
for文とwhile文の使い分け
・繰り返す回数があらかじめわかっている ⇒ for
・繰り返す回数があらかじめわからない ⇒ while
for文は繰り返しの数が決まっているのに対し、
while文はこの条件が成り立っている間は、
ずーと繰り返しする、という感じです。
()内に一度に書けるから、私はfor文をよく使います。
では、早速プログラムを書いてみましょう。
以下のPHPのコードを入力して、実行して下さい。
header("Content-type:text/html;charset=UTF-8");
//50個のボタン(button)タグを作る
echo "<form>";
for($i=1 ;$i<= 50 ;$i++){
echo "<input type='submit' name='btn' value='{$i}' style='width:24px;' />";
}
echo "</form>";
//ボタンが押されていれば、押された番号を表示
if(isset($_GET["btn"])){
$btn = intval($_GET["btn"]);
echo "<p>ボタンの{$btn}番が押されました!!</p>";
}
?>
このPHPのコードは、ブラウザに1番から50番までのボタンを表示し、
クリックしたボタンの番号を表示するものです。
POINT1
for文がなければ、inputタグなどを50回記述しないいけませんね。
for文だと数行で終わります。
POINT2
フォームからの入力、データ送信でPOSTではなく、
GETで実現しています。
入力された番号がURLに見えているのがGETの特徴です。
POINT3
input type='submit' などのシングルクォーテーションは、
全体にダブルクォーテーションを使用しているため
シングルクォーテーシ5ンになってます。
POINT4
isset($_GET["btn"])は関数で、かっこ内の変数に
データが歩かないかを調べるものです。
POINT5
intval()関数は文字列に入っている数値を、
整数型に変換する関数です。
※関数については、この後詳しく述べます。
※この<form>タグにはaction属性が指定されていません。
この場合は、自分自身のサイトが指定されます。