4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravel とPHP TipsAdvent Calendar 2023

Day 4

【PHP8.x】 switch文をmatch式で書き換えてみよう

Last updated at Posted at 2023-12-06

概要

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文は文の一部で、直接的な式としての利用は出来ません。
結果を返すのではなく、出力や変数への代入など、他の文と組み合わせて利用するのが一般的です。

参考

4
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?