07繰り返し
ここからは繰り返し処理について触れていきます。
JavaScript同様にPHPにも様々な繰り返し処理が存在します。
実務内でもよく使われる繰り返し処理も存在するので押さえておきましょう。
for文
for文は、次のような場合によく使われます。
- 特定の回数だけ処理を繰り返す場合
- 特定の配列やオブジェクトの各要素に対して処理を行う場合
こちらで指定した回数分だけ処理を行うことができます。
実務ではあまり用いられることは少ないですが大切な処理なので理解して使えるようにしましょう。
使い方
for (初期化式; 条件式; 増減式) {
// 実行する処理
}- 初期化式: for文が実行される前に1回だけ実行される処理を指定します。ここでは、繰り返し処理を行うための変数を初期化することがよくあります。
- 条件式: for文を実行するかどうかを判断するための条件式を指定します。条件式がtrueの間は、for文の処理が繰り返し実行されます。
- 増減式: for文の処理が実行されるたびに、1回だけ実行される処理を指定します。ここでは、繰り返し処理を行うための変数の値を増減させることがよくあります。
以下は、for文を使用して1から10までの整数を表示する例です。
for ($i = 1; $i <= 10; $i++) {
echo $i;
}
// 1 2 3 4 5 6 7 8 9 10while文
PHPのwhile文は、特定の条件がtrueの間、繰り返し実行される処理を記述するための構文です。
while文は、次のような場合によく使われます。
- 特定の条件がtrueの間、処理を繰り返す場合
- 特定の処理が特定の条件を満たすまで繰り返される場合
while文の構文は次のようになります。
while (条件式) {
// 実行する処理
}while文は以下の2つの部分から構成されています。
- 条件式: while文を実行するかどうかを判定するための条件式を指定します。条件式がtrueの間は、while文の処理が繰り返し実行されます。
- 処理: while文が実行されるたびに実行される処理を指定します。
以下は、while文を使って1から10までの整数を順に表示する例です。
$i = 1;
while ($i <= 10) {
echo $i;
$i++;
}上記の例では、while文の条件式として、変数$iが10以下かどうかを判定しています。
また、while文の処理の中では、$iの値を1増やしています。
これにより、while文が繰り返し実行されるたびに$iの値が1ずつ増加し、最終的には$iが10を超えるためwhile文の実行が終了します。
do-while文
PHPのdo-while文は、while文と同様に、特定の条件がtrueの間、繰り返し実行される処理を記述するための構文です。
do-while文は、次のような場合によく使われます。
- while文と同様に、特定の条件がtrueの間、処理を繰り返す場合
- 特定の処理が特定の条件を満たすまで繰り返される場合
do-while文の構文は次のようになります。
do {
// 実行する処理
} while (条件式);do-while文は以下の2つの部分から構成されています。
- 処理: do-while文が実行されるたびに実行される処理を指定します。
- 条件式: do-while文を実行するかどうかを判定するための条件式を指定します。条件式がtrueの間は、do-while文の処理が繰り返し実行されます。
do-whileとwhileの違いは?
- while文は、条件式がfalseの場合は処理を実行しません。また、条件式がtrueの場合は、処理を実行した後に条件式を再度判定し、条件式がtrueの場合は処理を繰り返し実行します。
- do-while文は、処理を1回は必ず実行します。また、処理が実行された後に条件式を判定し、条件式がtrueの場合は処理を繰り返し実行します。
つまり、while文は条件式が falseの場合は実行されず、do-whileの場合は条件式が falseであっても最低1度は必ず実行されるという違いがあります。
以下は、do-while文とwhile文で同じ処理を記述した例です。
$i = 1;
while ($i <= 10) {
echo $i;
$i++;
}
$i = 1;
do {
echo $i;
$i++;
} while ($i <= 10);
// どちらも12345678910と表示される。foreach文
PHPのforeach文は、配列や連想配列の要素を順番に取り出しながら、繰り返し処理を実行するための構文です。
foreach (配列 as 変数) {
// 実行する処理
}foreach文は以下の2つの部分から構成されています。
- 配列: foreach文で処理を行う配列または連想配列を指定します。
- 変数: 配列から取り出した値を格納するための変数を指定します。連想配列の場合は、キーと値の両方を格納することができます。
foreachの例
$fruits = ["apple", "banana", "orange"];
foreach ($fruits as $fruit) {
echo $fruit;
}
// apple banana orange連想配列が与えられた時
PHPのforeach文で連想配列を処理する場合は、次のように書くことができます。
foreach (連想配列 as キー => 値) {
// 実行する処理
}実際の処理を見てみましょう。
$fruits = ["apple" => "りんご", "banana" => "バナナ", "orange" => "オレンジ"];
foreach ($fruits as $key => $value) {
echo $key . ": " . $value . "\n";
}
// apple: りんご
// banana: バナナ
// orange: オレンジ
連想配列の場合、$keyに連想配列のキーが代入され、$valueの部分に値が入ります。
$keyは省略することもできます。
その場合は今回でいうと、”りんご”、”バナナ”、”オレンジ”のみが取得できます。
breakとcontinue
PHPのforeach文では、breakおよびcontinueを使用することができます。
この2つはループ処理を中断するための構文です。
- break: ループ処理を完全に中断します。
- continue: ループ処理を中断し、次のイテレーションに進みます。
$fruits = ["apple", "banana", "orange"];
foreach ($fruits as $fruit) {
if ($fruit === "banana") {
break;
}
echo $fruit;
}
// apple
$fruits = ["apple", "banana", "orange"];
foreach ($fruits as $fruit) {
if ($fruit === "banana") {
continue;
}
echo $fruit;
}
// apple orange上記の例を解説します。
まず$fruitsの配列1つ目である”apple”が$fruitに入ります。
”apple”と”banana”は等しくないためif文の中身は実行されません。
よって最後のecho $fruitで”apple”が表示されます。
次に配列2つ目の”banana”が$fruitに入ります。
if文がtrueになるのでif文の中身が実行されます。
continueは処理をやめて次のイテレーション(今回でいう”orange”)を実行するので、
echo $fruitは実行されません。
一方で、breakの場合foreach自体の処理を中断させるので”orange”は処理されません。
コメントを残す