条件分岐
if
if (条件式) {
//条件式がtrueの場合の処理
} else {
//条件式がfalseの場合の処理
}
trueのときだけ処理を実行したい場合elseブロックは省略可能
elseif
elseifブロックを使えば多岐分岐をかくことができます。
if (条件式1) {
//条件式1がtrueの場合の処理
} elseif (条件式2) {
//条件式2がtrueの場合の処理
}
…
} else {
//条件式1、条件式2、…がいずれもfalseの場合の処理
}
複数の条件式でtrueでも最初の処理のみ実行される
switch
switch (式) {
case 値1 :
//式 == 値1の場合の処理
break;
case 値2 :
//式 == 値2の場合の処理
break;
…
default :
//式が値1、2、…がいずれでもない場合の処理
break;
}
複数の条件式でtrueでも最初の処理のみ実行される
match
match(式) {
値1 => 式1,
値2 => 式2,
…
default => 式N
}
繰り返し処理
while
while (条件式) {
// 条件式がtrueである限り実行する処理
}
do {
// 条件式がtrueである限り実行する処理
} while (条件式);
後置判定のため、条件判定に関わらず処理は1回実行
for
for (初期化式; 継続条件式; 増減式) {
// ループ内で実行する処理
}
continue
continue命令は周回をスキップさせるときに使います。
<?php
$sum = 0;
for ($i = 1; $i <=10; $i++) {
if ($i % 2 !== 0) { continue; }
$sum += $i;
}
print $sum; // 25
foreach
foreach (配列 as 値変数) {
// ループ内で実行する処理
}
foreach (連想配列 as キー変数 => 値変数) {
// ループ内で実行する処理
}
1~100までの偶数の合計
$sum = 0;
1 ($i = 1; $i <= 100; $i++) {
2 ($i % 2 ===0) { 3 }
$sum += $i;
}
$sum = 0;
1 ($i = 1; $i <= 100; $i++) {
2 ($i % 2 ===0) { 3 }
$sum += $i;
}
$sum = 0;
for ($i = 1; $i <= 100; $i++) {
if ($i % 2 ===0) { continue; }
$sum += $i;
}
・現在のループを強制的に中断する命令
・現在の周回だけスキップし、ループは継続する命令
・現在の周回だけスキップし、ループは継続する命令
- break
- continue
$rank = ‘上’;
$result = 1($rank) {
‘上’ 2 ‘大変良い’,
‘中’ 2 ‘良い’,
‘下’ 2 ‘悪い’,
3 => ‘???’
};
$result = 1($rank) {
‘上’ 2 ‘大変良い’,
‘中’ 2 ‘良い’,
‘下’ 2 ‘悪い’,
3 => ‘???’
};
$rank = '上';
$result = match($rank) {
'上' => '大変良い',
'中' => '良い',
'下' => '悪い',
default => '???'
};