{category}

PHP - 制御構造

match

マッチ(モダンPHP機能

意味 値に基づく条件分岐


matchとは?

Match式は、値に基づいて異なる式を評価する制御構造です。switch文に似ていますが、より簡潔で厳密な比較を行います。また、式として値を返すことができます。

matchの具体的な使い方

HTTPステータスコードの分類

function getStatusMessage($code) {
    return match ($code) {
        200, 201, 202 => '成功',
        301, 302 => 'リダイレクト',
        400, 401, 403, 404 => 'クライアントエラー',
        500, 502, 503 => 'サーバーエラー',
        default => '不明なステータス'
    };
}

echo getStatusMessage(404);

👇出力結果

クライアントエラー

この例では、HTTPステータスコードに基づいてメッセージを返すmatch式を使用しています。複数の値に対して同じ結果を返す場合、カンマで区切って指定できます。

型に基づく分岐

function describe($value) {
    return match (true) {
        is_string($value) => "文字列: $value",
        is_int($value) => "整数: $value",
        is_bool($value) => "真偽値: " . ($value ? 'true' : 'false'),
        is_array($value) => "配列: " . json_encode($value),
        default => "その他の型"
    };
}

echo describe("Hello") . "\n";
echo describe(42) . "\n";
echo describe(true) . "\n";
echo describe([1, 2, 3]);

👇出力結果

文字列: Hello
整数: 42
真偽値: true
配列: [1,2,3]

この例では、変数の型に基づいて異なる説明を返すmatch式を使用しています。trueとの比較を利用して、複雑な条件分岐を実現しています。

matchに関するよくある質問

Q. matchとswitchの違いは?
A. matchはswitchに似ていますが、より厳密な比較を行い、式として値を返せます。また、breakが不要で、複数の条件を1行で書けるなど、より簡潔な記述が可能です。
Q. matchで複数の値を処理できる?
A. はい、カンマで区切って複数の値を指定できます。例えば、200, 300 => 'success' のように書くことで、200と300の両方にマッチする処理を1行で書けます。
Q. matchでdefaultは必須?
A. matchでは、すべての可能性をカバーする必要があります。そのため、明示的にdefaultケースを指定するか、すべての可能性を列挙する必要があります。指定しないとエラーになります。

matchが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、PHPのmatchや引数名:値、===、...、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


PHPを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!PHPはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

引数名:値

関数呼び出し時の引数指定

種類: 関数呼び出し

===

型の厳密比較

種類: 型宣言の改善

...

配列を展開する演算子

種類: 配列操作

インデックス

データ検索の高速化

種類: データベース設計

printf()

フォーマット済み文字列を出力

種類: 文字列フォーマット