ホームページ >バックエンド開発 >PHP8 >PHP8の新機能例: 条件判定を簡略化するために一致式とコードを使用するには?

PHP8の新機能例: 条件判定を簡略化するために一致式とコードを使用するには?

王林
王林オリジナル
2023-09-12 16:19:461064ブラウズ

PHP8の新機能例: 条件判定を簡略化するために一致式とコードを使用するには?

PHP8 は、多くの新機能と改良点を導入した PHP プログラミング言語の重要なバージョンです。新機能の 1 つは match 式で、開発者が条件判定コードを簡素化するのに役立ちます。この記事では、条件判定の処理を簡略化するためのmatch式の使い方と実践例を紹介します。

PHP7 以前のバージョンでは、条件判断を行うために switch ステートメントまたは一連の if-else ステートメントをよく使用します。これらのステートメントは同じ機能を実現できますが、コードが重複し、可読性が低下します。 match 式の導入はまさにこれらの問題を解決するためのものです。

match 式の構文は switch ステートメントと非常によく似ており、式の値に基づいて対応するコード ブロックを実行できます。違いは、一致式がステートメントではなく式であり、値を返すことができることです。これにより、変数に直接割り当てることも、関数の戻り値として割り当てることもできます。

次の簡単な例は、一致式を使用して数値がどの範囲に属するかを判断し、対応する数値型を返す方法を示しています。

function getType(int $number) {
    return match (true) {
        $number < 0 => 'negative',
        $number == 0 => 'zero',
        $number > 0 => 'positive',
    };
}

echo getType(-5);  // 输出: negative
echo getType(0);   // 输出: zero
echo getType(10);  // 输出: positive

上の例では、パラメータとして整数を受け取る getType という名前の関数を定義しました。 match式では単一の条件判定ではなく複数の条件判定を行いたいため、条件としてtrueを使用しています。次に、矢印演算子 => を使用して、各条件を対応する数値型に関連付けます。

実際の使用では、必要に応じてさらに条件を追加し、さまざまな操作を実行できます。一致式は、一致する条件が見つかるか、デフォルトの条件に到達するまで、条件に従って順番に評価されます。

function getPrice(string $productType) {
    return match ($productType) {
        'book' => 20,
        'clothes' => 50,
        'electronics' => 100,
        default => 0,
    };
}

echo getPrice('book');          // 输出: 20
echo getPrice('clothes');       // 输出: 50
echo getPrice('electronics');   // 输出: 100
echo getPrice('unknown');       // 输出: 0

上の例では、製品タイプを表す文字列パラメータを受け取る getPrice という関数を定義しました。製品タイプに応じて、対応する価格を返します。製品タイプがどの基準にも一致しない場合は、デフォルト値の 0 が返されます。

上記の例の基本的な使用法に加えて、一致式では、論理演算子を使用して条件を結合したり、匿名関数を使用したりするなど、他の機能も提供されます。これらの機能により、コードの柔軟性と可読性がさらに向上します。

要約すると、PHP8 の新機能 match 式は、条件判断を簡略化する方法を提供し、コードをより簡潔で読みやすくします。 match 式を使用すると、面倒な if-else ステートメントやコードの繰り返しを回避でき、開発効率とコードの品質が向上します。この記事の例が、一致表現の理解を深め、適用するのに役立つことを願っています。

以上がPHP8の新機能例: 条件判定を簡略化するために一致式とコードを使用するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。