PHP8の新機能match式の詳細説明

Guanhui
リリース: 2023-02-17 11:30:02
転載
4358 人が閲覧しました

PHP8の新機能match式の詳細説明

PHP8 alpha2 がリリースされ、最近新しいキーワード match が導入されました。このキーワードの機能は switch に似ています。

これはちょっと面白いと思います。単語の一致も非常に優れていますが、これは何をするのでしょうか?

以前は、switch を使用して、次のような値の変換作業を行うことがよくありました。

function convert($input) { switch ($input) { case "true": $result = 1; break; case "false": $result = 0; break; case "null": $result = NULL; break; } return $result; }
ログイン後にコピー

その後、match キーワードを使用すると、次のようになります。

function converti($input) { return match($input) { "true" => 1, "false" => 0, "null" => NULL, }; }
ログイン後にコピー

switch と比較すると、match は値を直接返すため、上記の switch の例の $result 中間変数は必要ありません。

そして、switch と 1 つのブロックの複数の場合と同様に、次のように複数の一致条件を一緒に記述することもできます。

return match($input) { "true", "on" => 1, "false", "off" => 0, "null", "empty", "NaN" => NULL, };
ログイン後にコピー

switch とは異なることに注意してください。以前は、switch を使用するときに次のような奇妙な問題に遭遇することがありました:

$input = "2 person"; switch ($input) { case 2: echo "bad"; break; }
ログイン後にコピー

実際には bad が出力されることがわかりますが、これは switch が緩い比較 (==) を使用しているためです。 Match ではこの問題は発生せず、厳密な比較 (===) が使用されるため、値と型が完全に一致する必要があります。

また、入力が一致のすべての条件を満たすことができない場合、一致は UnhandledMatchError 例外をスローします:

function convert($input) { return match($input) { "true" => 1, }; } convert("false");
ログイン後にコピー

は次のように取得します:

Fatal error: Uncaught UnhandledMatchError: Unhandled match value of type string
ログイン後にコピー

不完全な一致条件によって引き起こされる予期しないエラーを心配する必要はありません。

推奨チュートリアル:「PHP8

以上がPHP8の新機能match式の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:laruence.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!