更新履歴
更新日 | 更新者 | 更新内容 |
---|---|---|
2021/8/15 | JJI | ・”はじめに”の段落を追加 ・サンプルプログラムの実行結果に画面の画像を追加 |
はじめに
この記事では、PHPで繰り返し処理として使用できるループ文について説明します。
ループ文にはいくつかの種類がありますが、プログラムでよく使用するため、この記事を参考に覚えるようにしましょう。
for
for文はループ処理の構文で次のように使用します。
よく使用する構文のため、必ず覚えるようにしてください。
for(初期値; 終了条件; 増分) {
処理
}
項目 | 説明 |
---|---|
初期値 | for文を開始する値、$i = 1のように書く 書かなくてもよい |
終了条件 | for文の終了条件、$i < 5のように書く 書かなくてもよいが、後述のbreak文でループを抜けるように書かないと無限ループとなり、処理が終了しないので注意が必要。 |
増加値 | 初期値で指定した変数の増分、$i++のように書く 増加値は$i–のように負の増加分でもよい 書かなくてもよい |
for文を使用したサンプルプログラム・実行結果は次の通りです。
<?php
echo "PHPの構文5<br>\n";
echo "ループ<br>\n";
$vagi1 = ["じゃがいも", "トマト", "きゅうり", "ナス", "にんじん", "ほうれん草"] ;
echo "for文1<br>\n";
for($i = 0; $i < 3; $i++){
echo "${i}:" . $vagi1[$i] . "<br>\n";
}
echo "<br>\n";
echo "for文2<br>\n";
for($i = 0; $i < 5; $i += 2){
echo "${i}:" . $vagi1[$i] . "<br>\n";
}
?>
実行結果は次の通りです。
・画面

・HTML
PHPの構文5<br>
ループ<br>
for文1<br>
0:じゃがいも<br>
1:トマト<br>
2:きゅうり<br>
<br>
for文2<br>
0:じゃがいも<br>
2:きゅうり<br>
4:にんじん<br>
while
while文はループ処理の構文で次のように使用します。
for文と同様によく使用する構文のため、必ず覚えるようにしてください。
while(終了条件) {
処理
}
項目 | 説明 |
---|---|
終了条件 | while文の終了条件、$i < 5のように書く 書かなくてもよいが、後述のbreak文でループを抜けるように書かないと無限ループとなり、処理が終了しないので注意が必要。 |
for文で書いたコードはwhile文に置き換えることができます。
for文とwhile文のどちらを使用するのか好みによりますが、どちらもよく使用します。
while文を使用したサンプルプログラム・実行結果は次の通りです。
<?php
$vagi1 = ["じゃがいも", "トマト", "きゅうり", "ナス", "にんじん", "ほうれん草"] ;
echo "while文<br>\n";
$i = 0;
while($i < 3) {
echo "${i}:" . $vagi1[$i] . "<br>\n";
$i++;
}
echo "<br>\n";
?>
実行結果は次の通りです。
・画面

・HTML
while文<br>
0:じゃがいも<br>
1:トマト<br>
2:きゅうり<br>
<br>
foreach
foreach文は配列、連想配列の要素をひとつずつ取り出し、配列がすべてなくなるまで処理を繰り返すことができる構文です。
よく使用する構文のため、覚えるようにしてください。
構文は次の通りです。
foreach(配列 as 変数) {
処理
}
項目 | 説明 |
---|---|
配列 | 配列を指定する 配列でなくてもコレクションの型であれば指定可能 |
変数 | 配列から取り出した要素を指定する |
foreach(連想配列 as キー => 値) {
処理
}
項目 | 説明 |
---|---|
連想配列 | 連想配列を指定する |
キー | 連想配列から取り出した配列のキーを指定する |
値 | 連想配列から取り出した配列の値を指定する |
foreeach文を使用したサンプルプログラム・実行結果は次の通りです。
<?php
$vagi1 = ["じゃがいも", "トマト", "きゅうり", "ナス", "にんじん", "ほうれん草"];
$vagi2 = [
"potato" => "じゃがいも",
"tomato" => "トマト",
"cucumber" => "きゅうり",
"eggplant" => "ナス",
"carrot" => "にんじん",
"spinach" => "ほうれん草"];
echo "foreach文1<br>\n";
$i = 0;
foreach($vagi1 as $var) {
echo "${i}:" . $var . " ";
$i++;
}
echo "<br>\n<br>\n";
echo "foreach文2<br>\n";
$i = 0;
foreach($vagi2 as $key => $val) {
echo "${i}: key:" . $key . ": value:" . $val . ":<br>\n";
$i++;
}
echo "<br>\n";
?>
実行結果は次の通りです。
・画面

・HTML
foreach文1<br>
0:じゃがいも 1:トマト 2:きゅうり 3:ナス 4:にんじん 5:ほうれん草 <br>
<br>
foreach文2<br>
0: key:potato: value:じゃがいも:<br>
1: key:tomato: value:トマト:<br>
2: key:cucumber: value:きゅうり:<br>
3: key:eggplant: value:ナス:<br>
4: key:carrot: value:にんじん:<br>
5: key:spinach: value:ほうれん草:<br>
<br>
do-while
do-while文はループ処理の構文で、while文はループの開始時に終了条件を判定するのに対し、do-while文はループ内の処理後にループの終了条件を判定します。
do-while文はwhile文で全て置き換えることができるため、while文と比較し、do-while文はあまり使用することは多くありません。
そのため、覚えておかなくても大丈夫です。
do-while文は次のように使用します。
do {
処理
} while(終了条件);
項目 | 説明 |
---|---|
終了条件 | do-while文の終了条件、$i < 5のように書く 書かなくてもよいが、後述のbreak文でループを抜けるように書かないと無限ループとなり、処理が終了しないので注意が必要。 |
do-while文を使用したサンプルプログラム・実行結果は次の通りです。
<?php
$vagi1 = ["じゃがいも", "トマト", "きゅうり", "ナス", "にんじん", "ほうれん草"] ;
echo "do-while文<br>\n";
$i = 0;
do {
echo "${i}:" . $vagi1[$i] . "<br>\n";
$i++;
} while($i < 3);
echo "<br>\n";
?>
実行結果は次の通りです。
・画面

・HTML
do-while文<br>
0:じゃがいも<br>
1:トマト<br>
2:きゅうり<br>
<br>
break
break文はfor、whileなどのループ処理を途中で終了した場合に使用します。
break文を使用したサンプルプログラム・実行結果は次の通りです。
<?php
echo "PHPの構文5<br>\n";
echo "break文<br>\n";
$vagi1 = ["じゃがいも", "トマト", "きゅうり", "ナス", "にんじん", "ほうれん草"] ;
$ary_num = count($vagi1);
for($i = 0; $i < $ary_num; $i++){
if($i == 3) {
break;
}
echo "${i}:" . $vagi1[$i] . "<br>\n";
}
?>
実行結果は次の通りです。
・画面

・HTML
PHPの構文5<br>
break文<br>
0:じゃがいも<br>
1:トマト<br>
2:きゅうり<br>
continue
continue文はfor、whileなどのループ中にある処理をスキップしたい場合に使用します。
continue文を使用したサンプルプログラム・実行結果は次の通りです。
<?php
echo "PHPの構文5<br>\n";
echo "continue文<br>\n";
$vagi1 = ["じゃがいも", "トマト", "きゅうり", "ナス", "にんじん", "ほうれん草"] ;
$ary_num = count($vagi1);
for($i = 0; $i < $ary_num; $i++){
if($i == 2 || $i == 4) {
continue;
}
echo "${i}:" . $vagi1[$i] . "<br>\n";
}
?>
実行結果は次の通りです。
・画面

・HTML
PHPの構文5<br>
continue文<br>
0:じゃがいも<br>
1:トマト<br>
3:ナス<br>
5:ほうれん草<br>
最後に
この記事ではfor、whileなどのループ処理について説明しました。
ループはプログラミングの基本であり、よく使用するため、サンプルプログラムを参考に実際に書いて覚えるようにしましょう。
コメント