PHP8は、開発者が条件付き判断コードを大幅に簡素化するのに役立つ新しい機能であるMatch Expressionsを導入します。従来のスイッチまたはIF-ELSEステートメントと比較して、一致式はより簡潔で読みやすく、直接値を返すことができ、コードロジックをより明確にすることができます。
PHP7および以前のバージョンでは、開発者は通常、スイッチステートメントまたはマルチレイヤーのIF-ELSEを使用して条件付き判断を下します。この方法では機能を実装できますが、多くの場合、コードの複製、高いメンテナンスコスト、および不十分なロジックにつながります。
一致式の構文はスイッチに似ていますが、値を返すことができる式です。数値のタイプを決定する方法を示す例を以下に示します。
function getType(int $ number){ return match(true){ $ number <0 => 'ネガティブ'、 $ number == 0 => 'zero'、 $ number> 0 => 'Positive'、 }; } Echo getType(-5); //出力:ネガティブ Echo getType(0); //出力:ゼロ Echo getType(10); //出力:ただ
この例では、getType関数は、渡された数値に基づいて対応するタイプを返します。一致の判断条件としてtrueを使用すると、複数の条件分岐を簡単に処理できます。
数値タイプの判断に加えて、一致式は、製品タイプに基づいて価格を返すなど、より複雑なロジックにも使用できます。
function getPrice(String $ ProductType){ return match($ productType){ 「book」=> 20、 「服」=> 50、 'Electronics' => 100、 デフォルト=> 0、 }; } Echo getPrice( 'book'); //出力:20 Echo getPrice( '服'); //出力:50 Echo GetPrice( 'Electronics'); //出力:100 echo getPrice( 'nown'); //出力:0
この例では、GetPrice関数は、さまざまな製品タイプに応じて対応する価格を返し、条件が一致しない場合、デフォルト値は0です。
一致式は、単純な条件のマッチングに使用するだけでなく、論理演算子の条件を組み合わせたり、匿名関数を使用して結果を返すなどの機能もサポートします。これらの機能により、コードがより柔軟になり、複雑なビジネスロジックの処理が促進されます。
PHP8の一致式は、効率的かつ簡潔な条件付き判断の方法を提供します。これは、面倒なif-elseまたはスイッチステートメントを置き換えることができます。一致式を使用すると、コードの読みやすさを改善し、重複コードを削減し、開発効率を向上させることができます。この例を通じて、開発者はより速く開始し、実際のプロジェクトで一致の表現を適用できます。