PHP判定・ループ文の多重処理
今回はPHPの判定・ループ文switch/for/while/foreach/doについて学習してみます。
if〜else文については、php条件分岐ifとelse
switch、for、while、foreach、doの記述例
■switch () は条件分岐が多重分岐の場合に使用します
if文との違いはなく、処理速度や評価速度がややswitch文の方が早いといわれています。
単純な評価が10分岐前後以上続くときなどに使用するのが適しているようです。
switch (変数もしくは式) {
case 値1:
処理;
break;
case 値2:
処理;
break;
default:
処理;
}
defaultはcase評価が該当せず、breakしなかったときの処理で、if文ではelseと同じですね。
switch ($v) {
case 1:
echo "case1\n";
case 2:
echo "case2\n"
break;
case 3:
echo "case3\n"
break;
default:
echo "case no";
}
break;がない場合、$v==1でもcase2以下のすべての評価処理が行われる。
■for()ループ文
for文は、if文と同じぐらい見かけることが多いかもしれません。
指定された回数文、同一の処理が行うための記述です。
for (初期値; 条件式; 実行ごとの処理) {
処理;
break; // ループ脱出
continue; // 次のループへ
}
for ($i = 0; $i < 5; $i++) {
$v[$i] = 1;
}
continueはスキップ処理になります。forループ文中で条件を指定することで、その巡の処理をスキップし、次の数値からの処理を実行します。
・複数のforループ文
for ($i = 1, $n = 1; $i < 5 and $n == 5; $i++, $n++) {
$v[$i] = ++$n;
}
・無限ループ
for (;;) {
処理;
}
■while () ループ処理
while文はそのまま、『なになにの間は〜の処理をする』という記述です。
while (条件式) {
条件がtrue時のループ処理;
break; // ループ脱出
continue; // 次のループへ
}
■foreach ループ文 (reset、while、each)
foreachループ文は、配列の反復処理ループ文です。
for文などとの違いは、序列にたいして行うのではなく、文字列などの飛び飛びに条件式に当てはまる場合のみ処理をする記述です。
記述方法には以下2つのようになります。
foreach(配列1 as 変数1){
処理;
}
・拡張構文
拡張構文は連想配列を使うときに便利です。
$key変数に配列のINDEX番号もしくは配列の値が入ります。
foreach(配列1 as 配列番号または$keyの値 => 変数2){
処理;
}
$h = array("a","b","c");
foreach ( $h as $value ) {
echo "$value\n";
}
・拡張構文
$h = array(
"a" => "red",
"b" => "blue",
"c" => "yellow"
);
foreach ( $h as $key => $value ) {
echo "$key.":".$value\n";
}
■do () ループ処理
do〜while文がwhile文と異なるのは、while文には条件式が必要なのに比べて、do文は必ず一度は処理が実行され、
そのあとに条件式をもとにループすることになります。
do {
break; // ループ脱出
continue; // 次のループへ
} while (条件式);
■exit/die/return 処理の終了脱出
exitとdieは同じいみで、<?php 〜 ?>の処理を抜けます。
returnは関数を終了させます。ちなみにbreakはforやwhileなどのループ式から抜け出すためのものです。
exit; // PHPの終了
return; // 関数終了