Null-Koaleszenz vs. Elvis-Operator in PHP

Subodh Poudel 21 Juni 2022
  1. Elvis-Operator in PHP
  2. Null-Coalescing-Operator in PHP
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 Poudel avatar Subodh Poudel avatar

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

Verwandter Artikel - PHP Operator