カテゴリ: PHP 更新日: 2025/11/26

PHPのmatch文をやさしく解説!初心者でもわかるPHP8の新機能

PHP の match 文(PHP8 の新機能)
PHP の match 文(PHP8 の新機能)

先生と生徒の会話形式で理解しよう

生徒

「PHPのバージョン8で新しく追加されたmatch文って何ですか?」

先生

「PHP8ではmatchという新しい構文が追加されて、switch文よりも便利に条件分岐が書けるようになりましたよ。」

生徒

「条件分岐ってifとかswitchのことですよね?それと何が違うんですか?」

先生

「いい質問ですね!それでは、PHPのmatch文の使い方を基本からしっかり解説していきましょう。」

-

1. PHPのmatch文とは?新しい条件分岐の書き方

1. PHPのmatch文とは?新しい条件分岐の書き方
1. PHPのmatch文とは?新しい条件分岐の書き方

PHPのmatch文は、PHP8から使えるようになった新しい条件分岐の構文です。これまでのswitch文と似ていますが、以下のような違いがあります:

  • ① 値を返すことができる
  • ② 各ケースが厳密な比較(===)で評価される
  • breakが不要
  • defaultではなくdefault:の代わりにdefault =>を使う

初心者にもわかりやすくいうと、「match文」はスッキリして読みやすい「分岐の早見表」のようなものです。

2. match文の基本的な書き方と例

2. match文の基本的な書き方と例
2. match文の基本的な書き方と例

ここでは、簡単な例を使ってmatch文の基本形を学びましょう。


$color = "赤";

$message = match($color) {
    "赤" => "止まれ",
    "青" => "進め",
    "黄" => "注意",
    default => "信号の色ではありません"
};

echo $message;

止まれ

この例では、変数$colorの値に応じて、$messageに文字列を代入しています。matchの各行は「キーと値」のセットのように見えますよね。

3. switch文との違いを比較してみよう

3. switch文との違いを比較してみよう
3. switch文との違いを比較してみよう

今までよく使われてきたswitch文とmatch文を比べてみましょう。


// switch文
$number = 2;
switch ($number) {
    case 1:
        $result = "1です";
        break;
    case "2":
        $result = "2です";
        break;
    default:
        $result = "その他です";
        break;
}
echo $result;

// match文
$number = 2;
$result = match($number) {
    1 => "1です",
    "2" => "文字列の2です",
    2 => "数値の2です",
    default => "その他です"
};
echo $result;

数値の2です

ポイント: matchは「厳密な一致(===)」で判断するので、文字列の"2"と数値の2は別物として扱われます。

4. match文は戻り値として使えるのが便利!

4. match文は戻り値として使えるのが便利!
4. match文は戻り値として使えるのが便利!

match文は式(しき)として使えるため、そのまま変数に代入できます。これがswitchにはない大きな特徴です。


$score = 85;

$grade = match(true) {
    $score >= 90 => "A",
    $score >= 80 => "B",
    $score >= 70 => "C",
    default => "D"
};

echo $grade;

B

このように、trueを使って条件式を評価することで、if文のように書ける裏ワザ的な使い方も可能です。

-

5. match文の注意点!複数条件にマッチさせたいとき

5. match文の注意点!複数条件にマッチさせたいとき
5. match文の注意点!複数条件にマッチさせたいとき

match文は、複数の値を同時に比較することはできません。たとえば「1 または 2 または 3」というような書き方はできないため、in_array関数やif文を使うほうが適切な場合もあります。


$val = 2;

$message = match($val) {
    1 => "一番",
    2 => "二番",
    3 => "三番",
    default => "その他"
};

ただし、「同じ結果を返す条件」があるなら、以下のようにまとめることはできます。


$num = 1;

$text = match($num) {
    1, 2, 3 => "1から3のどれかです",
    4 => "4です",
    default => "その他です"
};

1から3のどれかです

6. match文を使った実践例!ユーザー入力で応用してみよう

6. match文を使った実践例!ユーザー入力で応用してみよう
6. match文を使った実践例!ユーザー入力で応用してみよう

実際のアプリケーションでは、ユーザーの入力に応じて処理を変える場面が多くあります。たとえば、選択肢から都道府県を選んで、その地方を表示する処理を考えてみましょう。


$pref = "福岡";

$region = match($pref) {
    "北海道", "青森", "秋田" => "北海道・東北地方",
    "東京", "神奈川", "千葉" => "関東地方",
    "大阪", "京都", "兵庫" => "近畿地方",
    "福岡", "佐賀", "長崎" => "九州地方",
    default => "その他の地域"
};

echo $region;

九州地方

このように、match文は複数の値をまとめて管理したいときにも、とても見やすくて便利です。

まとめ

まとめ
まとめ

PHPのmatch文は、PHP8で導入された便利な条件分岐の構文であり、これまでのswitch文よりも直感的で明確な記述ができるのが特徴です。とくに厳密比較による正確な判定、戻り値として直接使える点、そして複数の値を一行でまとめられる点は、実践的な開発において大きな利点となります。現代のPHP開発では、読みやすさや保守性が非常に重視されるため、match文のようなシンプルで誤解の少ない構文は、多くの場面で活躍します。本文で紹介した基本構文やswitch文との違いを理解することで、初心者の方でもより正確な条件分岐が書けるようになります。 さらに、実際の開発環境ではユーザー入力をもとに処理を分岐したり、大量の値を整理して判定したりする場面が多くあります。そうしたとき、match文の構造化された記述は非常に見やすく、複数人で作業する開発現場でも役立ちます。また、match文とtrueを組み合わせた条件式の評価は、if文と似た柔軟な応用ができ、実務でよく利用されるテクニックの一つです。これらを理解しておくことで、コードの冗長さを避けられ、よりスマートなロジック設計が可能になります。 例えば下記のように、本文と同じスタイルで書かれたサンプルコードでは、match文を使って季節を返す簡単な処理を記述しています。実際のPHPアプリケーションでも応用できる書き方なので、ぜひ練習に取り入れてみてください。


$season = "春";

$message = match($season) {
    "春" => "ぽかぽかした季節です",
    "夏" => "海や花火が楽しい季節です",
    "秋" => "紅葉が美しい季節です",
    "冬" => "寒さが厳しい季節です",
    default => "季節が判定できません"
};

echo $message;

このように、match文は値を返すシンプルな構文として扱えるため、複雑な条件式を整理したい場面でもスムーズに使えます。文章で説明した基本や応用例を繰り返し確認することで、自然とコードの理解が深まり、より高度な条件分岐へも応用できるようになります。PHP8以降は、機能の進化とともに開発効率の向上が求められる時代であり、match文はその中でも特に重要な要素です。基礎を押さえつつ、実践の中で繰り返し使っていくことで、扱いに慣れていくでしょう。 また、開発者が知っておくべきポイントとして、match文はstrict比較であるため、型の違いによる意図しない評価が起こりにくく、誤判定を防げる点があります。これはフォーム入力や外部APIとの連携など、扱うデータが多岐にわたる場面で特に有効です。こうした特性を理解したうえで使い分けることで、より堅牢で信頼性の高いアプリケーションが作れるようになります。今回の内容がPHP学習の大きな一歩となり、今後の開発にも役立つ知識として活用していただければ幸いです。

先生と生徒の振り返り会話

生徒

「今日のmatch文の説明で、一番便利だと思ったところはどこですか?」

先生

「やはり、戻り値として直接使える点ですね。switch文よりもコードが短くなりやすいのが魅力です。」

生徒

「厳密な比較で判定してくれるのも安心できますね。型の違いで誤判定が起きにくいのは良いと思いました。」

先生

「その通りです。特にフォーム入力など型が混ざりやすい場面では、match文の特性が役立ちます。」

生徒

「応用例の地方判定のコードもわかりやすかったです。同じ結果を返す条件をまとめられるのが便利でした。」

先生

「実践ですぐ使える書き方なので、ぜひ他の処理にも応用してみてください。慣れてくるとmatch文の構造がとても自然に感じられますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

PHPのmatch文とは何ですか?初心者にもわかるように教えてください。

PHPのmatch文は、PHP8から導入された新しい条件分岐の構文で、従来のswitch文よりもシンプルでわかりやすく書けるのが特徴です。match文は値を返すことができ、厳密な比較(===)で条件を評価する点が初心者にも安心です。
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
New1
PHP
PHPのCookieセキュリティを完全ガイド!初心者でもわかるSecureとHttpOnlyの使い方
New2
PHP
PHPのCSRF対策を完全理解!トークンを使った安全なフォーム送信の仕組みを初心者向けに徹底解説
New3
PHP
PHPのSQLインジェクション対策を完全解説!初心者でも安全にデータベースを扱う方法
New4
PHP
PHPでカウントダウンタイマーを作る方法!初心者向けにやさしく解説
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
Java&Spring記事人気No2
PHP
初心者向けPHPでMySQLからデータを取得する方法(SELECT文)完全ガイド
No.3
Java&Spring記事人気No3
Python
Pythonのリストの重複を削除する方法を解説!初心者向けにsetとdict.fromkeysの使い方をやさしく説明
No.4
Java&Spring記事人気No4
PHP
PHPのXSS対策を完全ガイド!初心者でもわかる安全なWebアプリの作り方
No.5
Java&Spring記事人気No5
Python
Pythonで経過時間を測る方法をやさしく解説!初心者向けtime.perf_counterとtime.sleepの使い方
No.6
Java&Spring記事人気No6
Python
Pythonでエラースタックトレースを表示・取得する方法を徹底解説!初心者向け例外処理入門
No.7
Java&Spring記事人気No7
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.8
Java&Spring記事人気No8
PHP
PHPのOAuth認証をやさしく解説!Google・Facebookログインを初心者向けに実装しよう
-
-