PHP - Null Coalescing Operator

Hallo zusammen, zukünftige PHP-Zauberer! Heute werden wir eine aufregende Reise in die Welt der PHP-Operatoren antreten. Genauer gesagt, wir werden den Null Coalescing Operator erkunden, ein praktisches kleines Werkzeug, das Ihren Code sauberer und effizienter machen kann. Aber bevor wir Tauchen wir darin ein, beginnen wir mit etwas Vertrautem, um die Bühne zu bereiten.

PHP - Null Coalescing Operator

Ternary Operator in PHP

Stellen Sie sich vor, Sie bauen eine Website für einen Buchladen. Sie möchten eine Nachricht anzeigen, die entweder "Buch verfügbar" oder "Nicht vorrätig" sagt, abhängig davon, ob ein Buch vorrätig ist. In PHP könnten wir traditionell eine if-else-Anweisung verwenden:

$inStock = true;
if ($inStock) {
$message = "Buch verfügbar";
} else {
$message = "Nicht vorrätig";
}
echo $message;

Das funktioniert gut, aber PHP bietet uns eine kürzere Möglichkeit, dies mit dem ternären Operator zu schreiben:

$inStock = true;
$message = $inStock ? "Buch verfügbar" : "Nicht vorrätig";
echo $message;

Lassen Sie uns dies herunterbrechen:

  • Das ? trennt die Bedingung ($inStock) vom wahren Wert ("Buch verfügbar").
  • Das : trennt den wahren Wert vom falschen Wert ("Nicht vorrätig").

Der ternäre Operator ist wie eine Abkürzung für eine if-else-Anweisung. Es ist großartig für einfache Bedingungen, kann aber schwer lesbar werden, wenn Sie zu viele davon verschachteln.

Nun, was ist, wenn wir überprüfen möchten, ob eine Variable gesetzt ist, bevor wir sie verwenden? Hier kommt unser Stern des Abends ins Spiel!

Der Null Coalescing Operator

Der Null Coalescing Operator, eingeführt in PHP 7, wird durch zwei Fragezeichen (??) dargestellt. Es ist wie ein Sicherheitsnetz für Ihre Variablen. Sehen wir uns an, wie es funktioniert:

$username = $_GET['username'] ?? 'Guest';
echo "Willkommen, $username!";

In diesem Beispiel wird der Wert von $_GET['username'] an $username zugewiesen, wenn er gesetzt und nicht null ist. Wenn er nicht gesetzt oder null ist, wird stattdessen 'Guest' zugewiesen.

Vergleichen wir dies mit der alten Methode:

$username = isset($_GET['username']) ? $_GET['username'] : 'Guest';
echo "Willkommen, $username!";

Der Null Coalescing Operator macht unseren Code sauberer und lesbarer. Er ist besonders nützlich bei der Verwendung von Formularingaben oder API-Antworten, bei denen Sie sich nicht sicher sind, ob ein Wert gesetzt wird.

Hier ist ein weiteres Beispiel:

$color = $user_preference ?? $default_color ?? 'blue';
echo "Deine gewählte Farbe ist: $color";

In diesem Fall wird zuerst $user_preference überprüft. Wenn dies null oder nicht gesetzt ist, geht es zu $default_color über. Wenn das auch null oder nicht gesetzt ist, wird schließlich 'blue' verwendet.

Realitätsbeispiel

Nehmen wir an, Sie bauen eine Benutzerprofilseite. Sie möchten die Biografie des Benutzers anzeigen, aber nicht alle Benutzer haben sie ausgefüllt. So könnten Sie den Null Coalescing Operator verwenden:

$user = [
'name' => 'John Doe',
'email' => '[email protected]'
// Bio ist nicht gesetzt
];

$bio = $user['bio'] ?? 'Dieser Benutzer hat noch keine Biografie hinzugefügt.';
echo "Benutzer-Biografie: $bio";

In diesem Fall wird, da 'bio' nicht im $user-Array gesetzt ist, die Standardnachricht angezeigt.

Kombination mit anderen Operatoren

Der Null Coalescing Operator kann mit anderen Operatoren für komplexere Logik kombiniert werden. Zum Beispiel können Sie ihn mit dem ternären Operator verwenden:

$age = $user['age'] ?? null;
$message = $age ? ($age >= 18 ? "Willkommen!" : "Entschuldigung, nur für Erwachsene.") : "Alter nicht angegeben.";
echo $message;

Hier überprüfen wir zuerst, ob das Alter gesetzt ist, indem wir den Null Coalescing Operator verwenden. Wenn es gesetzt ist, verwenden wir einen ternären Operator, um zu überprüfen, ob der Benutzer 18 oder älter ist.

Methoden mit dem Null Coalescing Operator

Hier ist eine Tabelle mit häufigen Methoden, die den Null Coalescing Operator verwenden:

Methode Beschreibung Beispiel
Variablenzuweisung Wert mit einer Fallback-Möglichkeit einer Variablen zuweisen $name = $_POST['name'] ?? 'Anonymous';
Array-Zugriff Array-Element mit einem Standardwert zugreifen $color = $settings['color'] ?? 'blue';
Funktion parameter Standardwerte für Funktion parameter bereitstellen function greet($name ?? 'Guest') { echo "Hallo, $name!"; }
Verkettung Wert in einer bestimmten Reihenfolge überprüfen $result = $a ?? $b ?? $c ?? 'default';
Mit Methodenaufrufen Standardwert bereitstellen, wenn eine Methode null zurückgibt $length = $string->getLength() ?? 0;

Erinnern Sie sich daran, der Null Coalescing Operator ist Ihr Freund, wenn es um möglicherweise undefinierte oder null-Werte geht. Es hilft Ihnen, saubereren, robusten Code zu schreiben, indem es elegante Fallbacks bietet.

Zusammenfassend ist der Null Coalescing Operator ein leistungsstarkes Werkzeug in Ihrem PHP-Werkzeugkasten. Es vereinfacht Ihren Code, macht ihn lesbarer und hilft dabei, die lästigen "Undefinierte Index" oder "Versuch, eine Eigenschaft eines Nich-Objekts abzurufen" Fehler zu verhindern, die PHP-Entwickler plagen.

Üben Sie das in Ihren Projekten und bald werden Sie sich fragen, wie Sie jemals ohne es gelebt haben! Viel Spaß beim Coden, zukünftige PHP-Meister!

Credits: Image by storyset