はじめに
以前こんな記事を書いたんですよね。
でも最近PHP8を使うようになってもっとイケてる感じにかけるやん?ってわかったわけで、続編みたいな感じです。
match式を使おう
ゆるゆる判定のswitch文を憎んでいるちょっとだけ意識高い目のぺちぱー諸氏は色んな方法でswitch文使わないで書こうと考えてると思うんですが、とうとうPHP8で我々の前に救世主が降り立ちました。 match式 です。
構文はこんな感じです。
$return_value = match (制約式) {
単一の条件式 => 返却式,
条件式1, 条件式2 => 返却式,
};
公式ドキュメントに書いてある大事なポイントを抜き出してきます。
match 式は、 switch 文と似ていますが、いくつかの違いがあります:
* match 式の比較は、 switch 文が行う弱い比較ではなく、 厳密に値を比較(===) します。
* match 式は値を返します。
* match 式の分岐は、 switch 文のように後の分岐に抜けたりはしません。
* match 式は、全ての場合を網羅していなければいけません。
最後のところがめんどくさそうな雰囲気を醸し出してますが、心配はいりません。 default を使えばいいだけです。
書き換えてみよう
では前回でも使ったイケてない例を書き換えてみましょう。
class HogeController {
public function fuga($method){
$title = '';
switch($method){
case 'new':
$title = '新規作成';
break;
case 'update':
$title = '更新';
break;
}
return view('fuga', compact('title'));
}
}
これを……
class HogeController {
public function fuga($method){
$title = match($method){
'new' => '新規作成',
'update' => '更新',
default => ''
};
return view('fuga', compact('title'));
}
}
こうじゃ!
これはね、シビレますね!!(*´Д`)ハァハァ
↧