本記事では、PHP8で新しく追加されたmatch式の使い方・書き方について解説しています。
PHPの学習におすすめ書籍
独習PHP 第4版

メリット
- PHPの基本構文からクラス・データベース連携・セキュリティまで学べる
- PHPによるWebアプリ開発の基礎・基本テクニックを学べる


Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!



初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
全プログラマー必見!
変数名/関数名にもう悩まない!
変数名/関数名にもう悩まない!
リーダブルコード


メリット
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)


目次
match式の使い方・書き方
match式の基本的な使い方は以下のとおりです。
$result = match (expression) {
'value1' => '戻り値1',
'value2' => '戻り値2',
default => '戻り値3'
};
構文解説
- $result:戻り値が代入される
- expression:評価したい式(値)をセット
- value1,2:expressionにセットした式と照合に使用される。一致していれば右辺の値をresultに返す
- 戻り値1,2:valueに一致した時に返したい値をセット
- default(戻り値3):全てのvalueに一致しなかった時に返したい値をセット(省略可能)
switch文との違い
- 戻り値が返せる
- 等価演算子(==)ではなく、厳密等価演算子(===)で比較する
あわせて読みたい




【PHP】switch文の使い方・書き方について
本記事では、PHPでswitch文の使い方・書き方について解説しています。 【switch文の使い方・書き方】 switch文は等価演算子を使用した条件分岐に特化した命令です。swit…
あわせて読みたい




【PHP】条件式の==と===の違いについて徹底解説
本記事では、PHPの条件式で使われる==と===の違いについて解説しています。 【==と===の違い】 条件分岐で使用される==と===の違いは、データ型の種類まで比較するかし…
実際に、match式を使用したサンプルコードを用意したので、動作確認してみましょう。
<?php
$scoreRank = 'C';
$result = match ($scoreRank) {
'A' => 'とても良い調子です!',
'B' => 'あと少しです!',
'C' => '努力が必要です!',
default => 'データがありません。'
};
echo $result;
// 実行結果:努力が必要です!
評価したい式(値)に変数$scoreRankをセットします。変数の中はCが代入されているため、match式は上から順にvalueにCがセットされていないかを探します。今回のサンプルコードでは「’C’ => ‘努力が必要です!’」があるので、右辺に記述されている「努力が必要です!」の文字列が変数$resultに代入されます。
defaultは省略可能ですが、全てのvalueに一致しない場合は「Uncaught UnhandledMatchError」のエラーを返すので基本的には設定しておきましょう。
<?php
$scoreRank = 'D';
$result = match ($scoreRank) {
'A' => 'とても良い調子です!',
'B' => 'あと少しです!',
'C' => '努力が必要です!',
};
echo $result;
// Fatal error: Uncaught UnhandledMatchError: