概要
- 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; - 変数