5
1

PHP match式

Last updated at Posted at 2022-07-19

概要

  • PHPのmatch式について簡単にまとめる

match式

  • switch文の上位互換的な存在

    match 式の比較は、 switch 文が行う弱い比較ではなく、 厳密に値を比較(===) します。
    match 式は値を返します。
    match 式の分岐は、 switch 文のように後の分岐に抜けたりはしません。
    match 式は、全ての場合を網羅していなければいけません。
    
  • PHP8以降で利用可能

  • ;で終わらせる必要あり(これは「matchだから;で終わらせる必要がある」訳ではない。単純に「文は;で終わらせる必要がある」ということ)

使い方

match (評価したい変数) {
    評価したい変数の値A => 評価したい変数が評価したい変数の値Aだった時の処理,
    評価したい変数の値B => 評価したい変数が評価したい変数の値Bだった時の処理,
    評価したい変数の値C => 評価したい変数が評価したい変数の値Cだった時の処理,
};

具体的な使い方

  • 変数$strに格納されている値によって変数$resultに格納する文字列を変更したい。

    • 変数$strxが入っていたら変数$resultに「xです」と格納したい。
    • 変数$stryが入っていたら変数$resultに「yです」と格納したい。
    • 変数$strzが入っていたら変数$resultに「zです」と格納したい。
    • 変数$strx 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;
    

参考文献

5
1
6

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
5
1