match式が便利すぎた
match式とは
PHP8より導入された条件式。
switchやifなどの条件式と並ぶような立ち位置。
$r = match($x) {
0 => "おはよう";
1 => "こんにちは",
2 => "こんばんわ",
default => "";
};
特徴
以下の特徴がある。
- 型と値の厳格比較 → (===)
- 値の代入に使いやすい
- 記述量が少なく条件分岐できる
何が便利なの?
バグが入りにくい
個人的に一番のメリットだと感じているのが厳格な型比較を行っているため、PHPの特徴である思わぬバグが入りにくいです。
default値を設定できるため、条件に一致しない場合も思わぬバグを制御しつつ後続処理が継続できます。
また、戻り値を変数に格納することができるので、値を格納する処理はmatch式で対応していくのがベストです。
//できない
$x = if ($a === '') {}
//できない
$x = switch(){
case '':
return 'a';
break;
}
//できる
$x = match($a){
1 => 'a'
}
//扱いやすいがelseの記述が必要(elseが不要な場合やelse ifが必要な場合に使いにくい)
$x = ($a === '') ? 'a' : 'b'
記述が少ない
switchと比較すると「default」の記述が不要なため、圧倒的に可読性が高くなる。
これだけ使う価値あり。
結論
めちゃ便利。みんなmatch使おうよ。