《PHP8上級試験対策》match 式と switch 文の違いを徹底解説

  • URLをコピーしました!

はじめに

PHP 8で導入された match 式は、従来の switch 文に比べて多くのメリットがあります。
型の厳密比較や式としての値返却など、知っておくと開発効率がぐっと上がります。
この記事では、実際のコード例を交えながら matchswitch の違いをわかりやすく解説します。

キーワード:PHP8/match/switch/厳密比較/式/型安全/開発効率

目次

基本コード例

<?php
declare(strict_types=1);
error_reporting(-1);

$v = 2;
$r = match ($v) {
    '1' => '1st',
    '2a' => '2nd...?',
    '2' => '2nd',
    '3' => '3rdt',
    default => 'any',
};
echo $r; // 出力: any
  • $v は整数 2
  • match は型まで厳密に比較するため、文字列 '2' とはマッチせず default が選ばれます。

match と switch の比較表

特徴switchmatch
返り値なし(必要なら break で制御)式として値を返せる(変数に代入可能)
型の比較ゆるい比較 (==)厳密比較 (===)
複数値のマッチcase 1: case 2: のように書く1, 2 => '値' のようにまとめて書ける
break の必要性必須不要
default の扱い任意、後ろに書く任意、最後に書く
書き方の簡潔さ冗長になりやすい1行で簡潔、読みやすい

まとめ

  1. matchなので値を返して変数に代入可能。
  2. 型まで厳密に比較するため、意図しないマッチを防げる。
  3. switch に比べてコードがスッキリ。
  4. フォールスルーの心配がないのでバグ防止に有効。

この記事が気に入ったら
いいねしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次