Null-Koaleszenz-Operator
Teil des Abschnitts Grundlagen der PHP-Journey von Coddy. Lektion 31 von 71.
Der Null-Coalescing-Operator (??) bietet eine praktische Möglichkeit, einen Standardwert zu verwenden, wenn eine Variable null ist oder nicht existiert. Dies ist besonders nützlich, wenn Sie mit Daten arbeiten, die möglicherweise fehlen.
Die Syntax platziert ?? zwischen der zu prüfenden Variable und dem Ersatzwert (Fallback):
<?php
$username = null;
$displayName = $username ?? "Guest";
echo $displayName; // Guest
?>PHP prüft, ob $username null ist. Da dies der Fall ist, gibt der Operator stattdessen „Guest“ zurück. Wenn $username einen Wert hätte, würde dieser Wert verwendet.
<?php
$username = "Alice";
$displayName = $username ?? "Guest";
echo $displayName; // Alice
?>Der Null-Coalescing-Operator funktioniert auch, wenn eine Variable überhaupt nicht definiert wurde, ohne einen Fehler auszulösen:
<?php
// $color ist nirgendwo definiert
$selectedColor = $color ?? "blue";
echo $selectedColor; // blue
?>Das macht ?? sauberer als die Verwendung eines Ternär-Operators mit isset()-Prüfungen. Es ist perfekt geeignet, um vernünftige Standardwerte bereitzustellen, wenn Daten fehlen könnten.
Aufgabe
EinfachLies zwei Werte aus der Eingabe ein: einen String nickname und einen String theme.
Verwende den Null Coalescing Operator, um mit potenziell fehlenden Werten umzugehen:
- Erstelle eine Variable
$userNickname, die aufnullgesetzt ist. Verwende dann den Null Coalescing Operator, um$displayNicknameden Wert von$userNicknamezuzuweisen, falls dieser existiert und nicht null ist, andernfalls verwende den Eingabewertnickname. - Erstelle eine Variable
$userThemeund weise ihr den Eingabewertthemezu. Verwende den Null Coalescing Operator, um$selectedThemeden Wert von$userThemezuzuweisen, falls dieser existiert und nicht null ist, andernfalls verwendedarkals Standard. - Verwende den Null Coalescing Operator direkt mit einer undefinierten Variable
$language(definiere sie nicht), um$displayLanguageden Wert von$languagezuzuweisen, falls sie existiert, andernfalls verwendeEnglishals Standard.
Gib jedes Ergebnis in einer neuen Zeile in dieser Reihenfolge aus: $displayNickname, $selectedTheme, $displayLanguage.
Beispiel:
Wenn die Eingaben Player1 und light lauten, sollte die Ausgabe wie folgt aussehen:
Player1
light
EnglishWenn die Eingaben GuestUser und blue lauten, sollte die Ausgabe wie folgt aussehen:
GuestUser
blue
EnglishProbier es selbst
<?php
// Eingabe lesen
$nickname = trim(fgets(STDIN));
$theme = trim(fgets(STDIN));
// TODO: Schreibe deinen Code darunter
// 1. Erstelle $userNickname gesetzt auf null, dann verwende ?? um $displayNickname zuzuweisen
// 2. Erstelle $userTheme mit der Theme-Eingabe, dann verwende ?? um $selectedTheme zuzuweisen (Standard: der exakte Text aus den Anweisungen)
// 3. Verwende ?? mit undefiniertem $language um $displayLanguage zuzuweisen (Standard: der exakte Text aus den Anweisungen)
// Gib die Ergebnisse aus (jedes in einer neuen Zeile)
echo $displayNickname . "\n";
echo $selectedTheme . "\n";
echo $displayLanguage . "\n";
?>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Vergleichs- und logische Operatoren
VergleichsoperatorenGleichheit und IdentitätLogische Operatoren Teil 1Logische Operatoren Teil 2Zusammenfassung – Einfache Logik2Variablen und Datentypen
ZahlenStrings und AnführungszeichenBoolesche WerteNamenskonventionenRückblick – VariableninitialisierungLeere VariablenString-VerkettungBenutzereingabenIn andere Datentypen umwandeln5Bedingte Logik
If-AnweisungIf - ElseDer ternäre OperatorNull-Koaleszenz-OperatorSwitch-AnweisungZusammenfassung – Entscheidungen treffen8Schleifen
For-SchleifeWhile-SchleifeForeach-SchleifeSchleifen mit Schlüsseln und WertenBreak-AnweisungContinue-AnweisungRückblick – Iterieren über Daten11Abschließende Herausforderungen
Herausforderung – FakultätsberechnungHerausforderung – Längstes WortHerausforderung – Vokalzähler3Grundlegende Operatoren
Arithmetische OperatorenModulo-OperatorPotenzierungsoperatorZusammengesetzte ZuweisungInkrement/DekrementOperatorrangfolgeRückblick – Einfache BerechnungenString-OperatorenÜbe selbstständig: Online-PHP-Compiler