概要
- PHPのmatch式について簡単にまとめる
match式
-
switch文の上位互換的な存在
match 式の比較は、 switch 文が行う弱い比較ではなく、 厳密に値を比較(===) します。 match 式は値を返します。 match 式の分岐は、 switch 文のように後の分岐に抜けたりはしません。 match 式は、全ての場合を網羅していなければいけません。
-
PHP8以降で利用可能
-
;
で終わらせる必要あり(これは「matchだから;
で終わらせる必要がある」訳ではない。単純に「文は;で終わらせる必要がある」ということ)
使い方
match (評価したい変数) {
評価したい変数の値A => 評価したい変数が評価したい変数の値Aだった時の処理,
評価したい変数の値B => 評価したい変数が評価したい変数の値Bだった時の処理,
評価したい変数の値C => 評価したい変数が評価したい変数の値Cだった時の処理,
};
具体的な使い方
-
変数
$str
に格納されている値によって変数$result
に格納する文字列を変更したい。- 変数
$str
にx
が入っていたら変数$result
に「xです」と格納したい。 - 変数
$str
にy
が入っていたら変数$result
に「yです」と格納したい。 - 変数
$str
にz
が入っていたら変数$result
に「zです」と格納したい。 - 変数
$str
にx y z
以外が入っていたら変数$result
に「x y z以外です」と格納したい。
<?php $str = 'x'; $result = match ($str) { 'x' => 'xです', 'y' => 'yです', 'z' => 'zです', default => 'x y z以外です' }; // xですと出力される echo $result;
- 変数