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
コメント