Nullsafe-Operator und Union-Typen
Verketten Sie nullable Objekte mit ?-> sicher und deklarieren Sie Union-Typ-Hinweise.
Nullsafe-Operator und Union-Typen ist eine kostenlose PHP Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des PHP Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Der Nullsafe-Operator
PHP 8.0 führte ?-> ein. Wenn die linke Seite null ist, wird die gesamte Kette abgebrochen und gibt null zurück, anstatt einen Fehler auszulösen.
Welches Problem wird gelöst?
Ohne den Nullsafe-Operator erfordert das Verketten möglicherweise nullbarer Objekte ausführliche Nullprüfungen.
<?php
// Old way:
$city = null;
if ($user !== null && $user->getAddress() !== null) {
$city = $user->getAddress()->getCity();
}
// PHP 8 nullsafe:
$city = $user?->getAddress()?->getCity();Nullsafe bei Methodenaufrufen
Jedes ?-> in der Kette wird unabhängig geprüft. Das erste null bricht die restliche Kette ab.
<?php
$name = $order?->getCustomer()?->getName() ?? "Guest";Nullsafe bei Eigenschaften
Der Operator funktioniert auch beim Zugriff auf Eigenschaften.
<?php
$zip = $user?->address?->zip;Nullsafe überspringt keine Seiteneffekte
Wenn die Nullsafe-Kette abgebrochen wird, werden nachfolgende Methodenaufrufe in der Kette nicht ausgeführt – es treten keine Seiteneffekte auf.
Union-Typen
Mit Union-Typen können Sie in PHP 8.0 deklarieren, dass ein Parameter, eine Eigenschaft oder ein Rückgabewert einen von mehreren Typen akzeptiert.
<?php
function formatId(int|string $id): string {
return (string) $id;
}Beispiele für Union-Typen
Häufig verwendete Union-Typen:
<?php
function process(int|float $amount): float {
return (float) $amount;
}
function findUser(int|string $idOrEmail): ?User {
// search by ID or email
}Nullable-Typen
?Type ist eine Kurzform für Type|null – der Wert kann diesen Typ haben oder null sein.
<?php
function greet(?string $name): string {
return "Hello, ".($name ?? "stranger");
}null in Union-Typen
Sie können null ausdrücklich in einen Union-Typ aufnehmen: int|string|null.
Intersection-Typen (PHP 8.1)
PHP 8.1 führte Intersection-Typen (A&B) ein – der Wert muss gleichzeitig alle Typen erfüllen. Das ist für typsichere Dependency Injection nützlich.
<?php
function process(Iterator&Countable $collection): void {
// $collection must be both Iterator AND Countable
}Typkonvertierung und strict_types
Ohne declare(strict_types=1) kann PHP Werte automatisch konvertieren, beispielsweise "42" in 42. Im strikten Modus werden nur exakt passende Typen akzeptiert.
Zusammenfassung
Der Nullsafe-Operator (?->) beseitigt wiederholte Nullprüfungen in Ketten. Union-Typen (int|string) ermöglichen flexible und zugleich typsichere Funktionssignaturen.
Kurze Überprüfung
Was gibt der Nullsafe-Operator zurück, wenn eine Methode in der Kette null zurückgibt?
Häufig gestellte Fragen
Ist die Lektion „Nullsafe-Operator und Union-Typen“ kostenlos?
Ja — der vollständige Text von „Nullsafe-Operator und Union-Typen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des PHP Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Nullsafe-Operator und Union-Typen“?
Verketten Sie nullable Objekte mit ?-> sicher und deklarieren Sie Union-Typ-Hinweise. Du übst PHP Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um PHP Academy zu starten?
Keine Vorkenntnisse erforderlich. PHP Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Nullsafe-Operator und Union-Typen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser PHP Academy-Lektion Code schreiben und ausführen?
Ja. Jede PHP Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Match-Ausdruck und benannte Argumente
- Nullsafe-Operator und Union-Typen
- Enumerationen (Enums)
- Fibers: Kooperative Nebenläufigkeit