まずは作業用のフォルダを作成しましょう。「C:\Program Files\Apache Group\Apache2\htdocs」に「lesson5」というフォルダを作成してください。
■サンプルプログラム
テキストエディタに以下のように書き込んで、「lesson5」フォルダの中に「sample01.php」として保存しましょう。
<html>
<head>
<title>Sample01</title>
</head>
<body>
<?php
$i = 0;
while($i<5){
print "${i}回目〜♪<br>\n";
++$i;
}
?>
</body>
</html>
できましたら、ブラウザのアドレスに
「http://localhost/lesson5/sample01.php」にアクセス!
ロリポップ!
さくらのレンタルサーバ
などのレンタルサーバー使ってる方はlocalhostのところはドメイン名になります。
(簡単に安くネットショップを開きたい方はこちら!)
さて、如何でしょうか?ちゃんと表示されましたでしょうか?
■解説
さて、if文と同じぐらい重要なループ文の中の「while」を紹介します。whileは、
while ( ここがtrueの間 ) { 括弧の中の処理を続けます }
whileのうしろの()には評価式が入ります。if文でやったtrueなのか?falseなのか?ということです。trueであれば{}の中を実行します。falseであれば何も実行しません。今回のプログラムは、
$i = 0;
$iに0を代入しています。これはwhileを実行するかどうかを評価するために使用します。
while($i<5){
print "${i}回目〜♪<br>\n";
++$i;
}
$iが5以下だったら{}の中を実行します。++$iというのはインクリメント言って、$iに1をプラスします。ですからこのループで行われる処理を全て書き出すと、
- $i(0)<5だからtrueになるので{}を実行。$iは1にインクリメントされる。
- $i(1)<5だからtrueになるので{}を実行。$iは2にインクリメントされる。
- $i(2)<5だからtrueになるので{}を実行。$iは3にインクリメントされる。
- $i(3)<5だからtrueになるので{}を実行。$iは4にインクリメントされる。
- $i(4)<5だからtrueになるので{}を実行。$iは5にインクリメントされる。
- $i(5)<5だからfalseになるので{}の実行を中止。
ということが実行されています。
ここで注意しなければいけないのが、whileの評価が常にtrueになってしまうような場合は「無限ループ」といって同じ処理を永遠に繰り返します。例えば「++$i」を忘れたらどうなるでしょうか?$iは常に0のままになり、$i<5は常にtrueになってしまいます。このようなことが起きるとサーバに負担がかかります。whileを使用するときは評価式に気をつけましょう。
●予備知識
${i}回目〜♪
とありますが、ちょっと特殊な書き方しています。$iと書けばいいところを${i}と書いています。print文などを使ってダブルクオーテーション内で変数を使うことは可能と色々な書籍には書いてあるのですが、管理人Dの環境ではどうもうまく動作しません。(変数をダブルクオーテーションの中の最後に書くときちんと表示されますが・・・^^;)
と、いうことなので当サイトではprint文やecho文で出力するときは、${変数名}のように使用したいと思います。(php.iniをいじるとかそんなことをやれば回避できたと思ったのですが、ヤリ方忘れました^^; いい案ありましたらメールを!!)
さて、次はもう1つのループを紹介したいと思います。管理人Dはこっちのほうをよく使います。