PHP はユニオン型を導入しようとしており、投票は可決されました。

爱喝马黛茶的安东尼
リリース: 2019-11-15 17:58:32
転載
4394 人が閲覧しました

PHP はユニオン型を導入しようとしており、投票は可決されました。

PHP 8 にユニオン型を導入するかどうかの投票が最近終了し、その結果、PHP 開発チームの 61 人のメンバーが賛成票を投じ、5 人が反対票を投じました。

PHP はユニオン型を導入しようとしており、投票は可決されました。

PHP はユニオン型を導入しようとしており、投票は可決されました。

バード兄弟が投票に反対票を投じたことにも気づきました~

したがって、投票結果によれば、当局はは、Union Types 2.0 が PHP 8 に導入されることを確認しました。

PHP はユニオン型を導入しようとしており、投票は可決されました。

ユニオン タイプに関する詳細な議論は、GitHub でご覧いただけます。ユニオン タイプについて簡単に見てみましょう。

公式の紹介によると、Union Types (Union Types) は、単一の型だけでなく、異なる型の複数の値の受け取りをサポートします。 PHP は現在 2 つの特殊な共用体タイプをサポートしています:

# ·特殊な Type 構文を使用した Type または null # # ·

配列または Traversable を使用して、特別な反復可能型を作成します。ただし、PHP は現在、任意の共用体型をサポートしていません。これを使用したい場合は、phpdoc コメントの助けが必要です。例は次のとおりです:

<pre style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 14px; line-height: 
1.5em; white-space: pre-wrap; overflow-wrap: break-word;">class Number { /**
* @var int|float number; /**
* @param int|float number) { number;
} /**
* @return int|float */
public function getNumber () { return $this->number;
}
}
ログイン後にコピー

statistics

の結果によると、共用体型の使用は、以下の場合に非常に一般的です。オープンソースのエコシステムと PHP 独自の標準ライブラリ。公式関係者は、PHP が共用体型をサポートできれば、より多くの型情報を phpdoc から関数シグネチャに移行できるようになり、次のような共通の利点があると述べています。 # 型は実際に強制されるため、エラーを早期に検出できます。

·

これらは必須であるため、型情報が古くなったり、エッジケースが見逃されたりする可能性が低くなります。 ·

リスコフ置換原則を実装するために、継承プロセス中に型がチェックされます。 ·

型情報はリフレクションを通じて取得できます。 ·

構文は phpdoc よりも単純です。 ジェネリックスに次いで、共用体型は、現在の型宣言システムにおける最大の「ギャップ」であると言えます。 ****提案****

ユニオン型は T1T2... 構文を使用し、受け入れられるすべての型で使用できます:

<pre style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 14px; line-height: 
1.5em; white-space: pre-wrap; overflow-wrap: break-word;">class Number { private int|float number): void { number;
} public function getNumber (): int|float { return $this->number;
}
}
ログイン後にコピー
サポートされる型

共用体型は、PHP で現在サポートされているすべての型 (null 型、null 許容共用型、偽の擬似型、反復型および冗長型) をサポートします。

****型構文****

特殊な void 型を除き、PHP の型構文は次の構文で記述できるようになりました:

<pre style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 14px; line-height: 
1.5em; white-space: pre-wrap; overflow-wrap: break-word;">type: simple_type | "?" simple_type | union_type
;
union_type: simple_type "|" simple_type | union_type "|" simple_type
;
simple_type: "false" # only legal in unions
| "null" # only legal in unions
| "bool"
| "int"
| "float"
| "string"
| "array"
| "object"
| "iterable"
| "callable" # not legal in property types
| "self"
| "parent"
| namespaced_name
;
ログイン後にコピー
1 0

PHP 中国語ウェブサイト には、多数の無料の PHP 入門チュートリアル があり、オンラインで学習することを歓迎します。

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