Typsystem

PHP verwendet ein nominales Typsystem mit einer starken verhaltenbasierten Subtypisierungsbeziehung. Die Subtypisierungsbeziehung wird zur Kompilierzeit überprüft, während die Überprüfung der Typen dynamisch zur Laufzeit erfolgt.

Das PHP-Typsystem unterstützt verschiedene atomare Typen, die zusammengesetzt werden können, um komplexere Typen zu erzeugen. Einige dieser Typen können als Typendeklaration geschrieben werden.

Atomare Typen

Manche atomare Typen sind eingebaute Typen, die fest in die Sprache integriert sind und nicht durch benutzerdefinierte Typen reproduziert werden können.

Liste der Basistypen:

Zusammengefasste Typen

Es ist möglich, mehrere atomare Typen zu zusammengefassten Typen zu kombinieren. In PHP können Typen auf folgende Weise kombiniert werden:

  • Schnittmenge von Klassentypen (Schnittstellen und Klassennamen).
  • Zusammenfassung von Typen (Union-Typen).

Schnittmengentypen

Ein Schnittmengentyp akzeptiert Werte, die mehrere Klassentyp-Deklarationen erfüllen, anstatt nur einer. Die einzelnen Typen, die den Schnittmengentyp bilden, werden durch das Symbol & verbunden. Daher wird ein Schnittmengentyp, der aus den Typen T, U und V besteht, als T&U&V geschrieben.

Zusammengefasste Typen (Union-Typen)

Ein Union-Typ akzeptiert die Werte mehrerer verschiedener Typen und nicht nur eines einzigen. Die einzelnen Typen, die den Union-Typ bilden, werden durch das Symbol | verbunden. Daher wird ein Union-Typ, der aus den Typen T, U und V besteht, als T|U|V geschrieben. Wenn einer der Typen ein Schnittmengentyp ist, muss er in Klammern gesetzt werden, damit er in DNF geschrieben werden kann: T|(X&Y).

Typ-Aliase

PHP unterstützt die beiden Typ-Aliase mixed und iterable, die dem Union-Typ von object|resource|array|string|float|int|bool|null bzw. Traversable|array entsprechen.

Hinweis: PHP unterstützt keine benutzerdefinierten Typ-Aliase.

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top