Null-Koaleszenz vs. Elvis-Operator in PHP
Dieser Artikel wird den Null-Coalescing-Operator und den Elvis-Operator in PHP anhand von Demonstrationen unterscheiden.
Elvis-Operator in PHP
Informieren Sie uns zunächst über den Elvis-Operator. Der Elvis-Operator von PHP ist eine Abkürzung für den ternären Operator.
Wir können auch sagen, dass es sich um eine modifizierte Form des ternären Operators handelt. Um den Elvis-Operator von PHP zu verstehen, müssen wir den ternären Operator und seine Funktionsweise kennen.
Ein ternärer Operator ist ein bedingter Operator, der verwendet wird, um einen einfachen Vergleich durchzuführen oder eine Bedingung mit einfachen Aussagen zu überprüfen. Es ist eine kürzere Version der if-else
-Anweisung.
Es verringert die Länge des Codes, der bedingte Operationen ausführt. Die Reihenfolge der Operation ist von links nach rechts.
Syntax:
condition? statement1 : statement2;
Beim ternären Operator wird zuerst die condition
ausgewertet. Wenn die Bedingung wahr ist, wird statement1
ausgeführt, und wenn die Bedingung falsch ist, wird statement2
ausgeführt.
Er wird ternärer Operator genannt, da er drei Operanden benötigt, d. h. eine Bedingung, eine Ergebnisaussage für wahr und eine Aussage für falsch.
Beispielcode:
<?php
$marks = 80;
$result = $marks >= 40 ? 'Pass': 'Fail';
echo $result;
?>
Das obige Beispiel zeigt Pass
an, wenn die Bedingung $marks >= 40
wahr ist.
Ausgabe:
Pass
Schauen wir uns nun den Elvis-Operator an. Es unterscheidet sich geringfügig vom ternären Operator; es lässt einfach den zweiten Operanden (zwischen condition
und statement2
) weg und macht ihn noch kürzer.
Syntax:
condition?:statement;
Wenn hier condition
als wahr ausgewertet wird, wird Bedingung
zurückgegeben. Andernfalls wird statement
zurückgegeben.
Die ternäre Darstellung der obigen Elvis-Syntax ist unten gezeigt.
conditon ? condition : statement;
Hinweis: Werte wie 0
, false
, NULL
, ""
, []
, "0"
usw. gelten in PHP als falsche Werte.
Sehen wir uns einige Beispiele für Elvis-Operatoren an.
Beispielcode:
<?php
$name = "John Doe";
$yourName = $name ?: 'No name';
echo $yourName."<br>";
$marks = "";
$yourMarks = $marks ?: 'No marks';
echo $yourMarks."<br>";
$address = null;
$yourAddress = $address ?: 'No Address';
echo $yourAddress."<br>";
$age = false;
$yourAge = $age ?: 'No age';
echo $yourAge."<br>";
?>
Ausgabe:
John Doe
No marks
No Address
No age
Da die Variable $name
true
zurückgibt, wird der Wert der Variablen ausgewertet. In den übrigen Fällen liefern die Variablen $marks
, $address
und $age
false
, sodass die Operanden auf der rechten Seite ausgewertet werden.
Daraus können wir schließen, dass die Ausgabe des Elvis-Operators vom Zustand true
oder false
der Bedingung abhängt.
Null-Coalescing-Operator in PHP
Der Null-Koaleszenz-Operator prüft, ob die angegebene Variable null ist oder nicht, und gibt den Nicht-Null-Wert aus dem Wertepaar zurück. Die Ausgabe des Null-Koaleszenz-Operators hängt davon ab, ob die Variable null ist.
Sehen wir uns die folgende Syntax an, um sie zu verstehen.
statment1 ?? statement2;
Wenn hier statement1
als null ausgewertet wird, wird statement2
zurückgegeben. Wenn statement1
ein Nicht-Null-Wert ist, wird er zurückgegeben.
Beim Null-Coalescing-Operator spielt es keine Rolle, ob der Wert von statement
false
, 0
oder ''
ist. Auch wenn statement
falsche Werte hat, wird sein Wert zurückgegeben.
Dies ist der Hauptunterschied zwischen dem Elvis-Operator und dem Null-Koaleszenz-Operator. Einige Beispiele für Null-Coalescing-Operatoren sind:
Beispielcode:
<?php
$name = "John Doe";
$yourName = $name ?? 'No name';
echo $yourName."<br>";
$marks = "";
$yourMarks = $marks ?? 'No marks';
echo $yourMarks."<br>";
$age = false;
$yourAge = $age ?? 'No age';
echo $yourAge."<br>";
$address = null;
$yourAddress = $address ?? 'No Address';
echo $yourAddress."<br>";
?>
Ausgabe:
John Doe
No Address
Hier ist die Variable $name
wahr, dann wird sie ausgewertet und im Ausgabebereich ausgegeben. Als nächstes ist die Variable $marks
ein leerer String; ein leerer String ist ein falscher Wert.
Der zweite Operand wird nicht ausgewertet, da er kein Nullwert ist. Im Ausgabeabschnitt ist ein Leerzeichen, da die leere Zeichenfolge ausgewertet wird.
Der Fall ist derselbe für die Variable $age
, da sie einen falschen Wert enthält, aber keinen Nullwert. Schließlich hat die Variable $address
einen Nullwert; daher wird der zweite Operand No Address
ausgewertet.
Aus den obigen Beispielen und Erklärungen können wir schließen, dass der wesentliche Unterschied zwischen dem Elvis-Operator und dem Null-Koaleszenz-Operator darin besteht, dass der Elvis-Operator prüft, ob der Wert wahr ist. Dennoch prüft der Null-Koaleszenz-Operator, ob der Wert nicht null ist.
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn