Heim > Schlagzeilen > PHP steht kurz vor der Einführung von Union Types, die Abstimmung ist bestanden!

PHP steht kurz vor der Einführung von Union Types, die Abstimmung ist bestanden!

爱喝马黛茶的安东尼
Freigeben: 2019-11-15 17:58:32
nach vorne
4454 Leute haben es durchsucht

PHP steht kurz vor der Einführung von Union Types, die Abstimmung ist bestanden!

Die Abstimmung über die Einführung von Union Types in PHP 8 endete vor Kurzem. Die Abstimmungsergebnisse zeigten, dass 61 Mitglieder des PHP-Entwicklungsteams dafür und 5 dagegen stimmten.

PHP steht kurz vor der Einführung von Union Types, die Abstimmung ist bestanden!

PHP steht kurz vor der Einführung von Union Types, die Abstimmung ist bestanden!

Es ist mir auch aufgefallen, dass Bruder Bird bei der Abstimmung dagegen gestimmt hat~

Den Abstimmungsergebnissen zufolge ist das so Offiziell bestätigt wurde, dass Union Types 2.0 in PHP 8 eingeführt wird.

PHP steht kurz vor der Einführung von Union Types, die Abstimmung ist bestanden!

Detaillierte Diskussion über Union-Typen kann auf GitHub eingesehen werden Werfen wir einen kurzen Blick auf Union-Typen.

Laut der offiziellen Einführung unterstützen Union Types den Empfang mehrerer Werte unterschiedlicher Typen, nicht nur eines einzelnen Typs. PHP unterstützt derzeit zwei spezielle Union-Typen:

·Type oder null, unter Verwendung der speziellen Type-Syntax

·Array oder Traversable, wodurch der spezielle iterierbare Typ entsteht

PHP unterstützt derzeit jedoch keine beliebigen Union-Typen. Wenn Sie es verwenden möchten, benötigen Sie die Hilfe von phpdoc-Kommentaren. Das Beispiel lautet wie folgt:

<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;
}
}
Nach dem Login kopieren

Laut den Ergebnissen von Statistik ist die Verwendung von Union-Typen sehr verbreitet das Open-Source-Ökosystem und die PHP-eigene Standardbibliothek. Beamte sagen, wenn PHP Union-Typen unterstützen kann, können wir mehr Typinformationen von phpdoc in Funktionssignaturen migrieren, was die folgenden gemeinsamen Vorteile hat:

· Typen werden tatsächlich erzwungen, sodass Fehler frühzeitig erkannt werden können.

·Da sie obligatorisch sind, ist es weniger wahrscheinlich, dass Typinformationen veraltet sind oder Grenzfälle übersehen.

·Der Typ wird während des Vererbungsprozesses überprüft, um das Liskov-Substitutionsprinzip umzusetzen

· kann Typinformationen durch Reflexion erhalten.

·Die Syntax ist einfacher als bei phpdoc.

Union-Typen stellen nach Generika die größte „Lücke“ im aktuellen Typdeklarationssystem dar.

****Proposal****

Union-Typen verwenden die T1T2…-Syntax und können in allen akzeptierten Typen verwendet werden:

<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;
}
}
Nach dem Login kopieren

Unterstützte Typen

Union-Typen unterstützen alle derzeit von PHP unterstützten Typen: Nulltypen, nullbare Union-Typen, falsche Pseudotypen, wiederholte und redundante Typen.

****Typsyntax****

Mit Ausnahme des speziellen void-Typs kann die Typsyntax von PHP jetzt durch die folgende Syntax beschrieben werden:

<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
;
Nach dem Login kopieren
1 0

PHP Chinesisch Website, eine große Anzahl kostenloser PHP-Einführungs-Tutorials, willkommen zum Online-Lernen!

Verwandte Etiketten:
Quelle:jianshu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage