Menu
Coddy logo textTech

Null Coalescing 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 werden.

<?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.

challenge icon

Aufgabe

Einfach

Lies zwei Werte aus der Eingabe ein: einen String nickname und einen String theme.

Verwende den Null Coalescing Operator, um mit potenziell fehlenden Werten umzugehen:

  1. Erstelle eine Variable $userNickname, die auf null gesetzt ist. Verwende dann den Null Coalescing Operator, um $displayNickname den Wert von $userNickname zuzuweisen, falls dieser existiert und nicht null ist, andernfalls verwende den Eingabewert nickname.
  2. Erstelle eine Variable $userTheme und weise ihr den Eingabewert theme zu. Verwende den Null Coalescing Operator, um $selectedTheme den Wert von $userTheme zuzuweisen, falls dieser existiert und nicht null ist, andernfalls verwende dark als Standard.
  3. Verwende den Null Coalescing Operator direkt mit einer undefinierten Variable $language (definiere sie nicht), um $displayLanguage den Wert von $language zuzuweisen, falls sie existiert, andernfalls verwende English als 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
English

Wenn die Eingaben GuestUser und blue lauten, sollte die Ausgabe wie folgt aussehen:

GuestUser
blue
English

Probier 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";
?>
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: Online-PHP-Compiler