概要
PHP8からmatch式が導入されました。今までswitchで書いていた部分をモダンにmatch式に書き換えてみましょう
例
switch文
$variable = "value2"; // 変更可能な値
// switch文
switch ($variable) {
case "value1":
$result = "値はvalue1です。";
break;
case "value2":
$result = "値はvalue2です。";
break;
case "value3":
$result = "値はvalue3です。";
break;
default:
$result = "その他の値です。";
}
echo $result;
match式
$variable = "value2"; // 変更可能な値
// match式
$result = match ($variable) {
"value1" => "値はvalue1です。",
"value2" => "値はvalue2です。",
"value3" => "値はvalue3です。",
default => "その他の値です。",
};
echo $result;
switch文の冗長感が無くなってスッキリになりましたね
違い
match
式は値を比較し、一致するケースの結果を返す式です。
そのため、変数に代入したり、関数の引数として渡したりすることができます。
switch
文は文の一部で、直接的な式としての利用は出来ません。
結果を返すのではなく、出力や変数への代入など、他の文と組み合わせて利用するのが一般的です。
参考