この記事は 一人PHP総復習 Advent Calendar 2016 8日目の記事です!
条件分岐同様に頻出するループ処理の基本についてだよ( 厂˙ω˙ )厂
foreach文、for文、while文などがあります!
foreach文
配列を要素ごとに処理したい時に使います!
使い方
<?php
foreach (配列 as 変数名) {
// 配列の要素ごとに行う処理
}
配列の要素を変数に詰めて処理します。
<?php
$animals = ['dog', 'cat', 'caw'];
foreach ($animals as $animal) {
echo $animal;
}
// dogcatcaw
要素を代入した変数(ここでは$animal
)はループ内でのみ有効。
添字配列でも連想配列でも同様の扱いです。(【PHP】配列を参照!)
配列のキーを使って操作したい時は、「キー => 要素」のセットで処理できます。
<?php
$animals = ['dog' => 'John', 'cat' => 'mary', 'caw' => 'moo'];
foreach ($animals as $type => $name) {
echo $type. 's name is '. $name. '.';
}
// dog's name is John.cat's name is mary.caw's name is moo.
for文
使い方
<?php
for (式1; 式2; 式3) {
// 繰り返し実行する処理
}
式1が初期化の式
式2が条件式
式3が増減式
for文の開始時に式1を実行し、式2がtrueだったら式3を実行してループを継続、falseの場合は終了します。
文字にすると難しいですが、主なユースケースは数値を評価して1ずつ増やしていく方法です。
<?php
for ($i=0; $i<5; $i++) {
echo $i;
}
// 01234
$i++
は加算子で、$i
に1加えることを表します。
$i
はただの変数名ですが、特にfor文などの数値を代入する時によく使います。(integerのiかな)
while文
使い方
<?php
式1;
while (式2) {
繰り返しする処理
増減式
}
式1が初期化の式
式2が条件式
式3が増減式
考え方はfor文と同じですね。
<?php
$i = 0;
while ($i < 5) {
echo $i;
$i++;
}
// 01234
forとwhileは似たような処理ができるのですが、よく言われる区別は
- for文はあらかじめ回数の決まった連番処理
- while文は数の決まっていない条件を満たす要素の抽出
という感じです。
私はwhile文あまり使わないかも。割と好みで使っても良さそうです。
ただwhile文は増減式を書き忘れると無限ループしやすい(クラッシュする)ので注意が必要ですね!
do..while文
これまで使ったことがないのであえて省略してみます!!!
まとめ
foreach文でのループ処理は、PHPでは添字配列と連想配列の処理が同様なのであまり苦しむことはなさそう。
逆に他の言語で処理を書くときに困ると思うので、「違いがある」ことを覚えておきたいです。
よくわからない方は【PHP】配列もぜひ参照してください乁( ˙ω˙ )厂