MENU

[php8]match式が便利

php8から導入されたmatch式が、場合によっては凄く便利なのでメモ。

公式:match 式

目次

match 式 使用例

「〜PHP8」で、パターン毎にフラグの上げ下げをしたい場合など、
switch式を使って書くことが結構ありましたが、
単純なケースであれば、match式を使うと簡略化できて便利でした。

以下実コード。

<?php

// とあるユーザーが、とある機能の操作権限の有無($isOperable)を判定するとして、
$user = [
    'user_type' => 'admin',
];

/**
 * 〜PHP8 の場合(switch式)
 * 一旦、$isOperableのデフォルト値をswitch式外部で定義して、
 * switch式内部で、然るべき条件により判定する
 */
$isOperable = false;
switch ($user['user_type']) {
    case 'admin':
        // 管理ユーザーの場合、true
        $isOperable = true;
        break;
    default:
        break;
}

/**
 * PHP8〜の場合(match式)
 * match式内部で、条件毎の$isOperableを設定してあげるだけ!!!
 */
$isOperable = match ($user['user_type']) {
    'admin' => true,
    default => false
};

という感じで、
処理が単純な場合、可読性・メンテナンス性の面からも、恩恵が大きいmatch式でした。

感想

match式以外にもPHP8から導入された新機能は、実業務でもかなり便利に使えているので、凄く良い。

名前付き引数とか、enumとか、constructor promotionとか、、、
PHP5とかの書き味に比べたら、もはや他の言語と言える感覚。

PHP8から追加された新機能 公式:
https://www.php.net/manual/ja/migration80.new-features.php

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

この記事を書いた人

コメント

コメントする

目次