Heim >Backend-Entwicklung >PHP-Tutorial >Kann der Nullsafe-Operator von PHP den Zugriff auf verschachtelte Eigenschaften vereinfachen?

Kann der Nullsafe-Operator von PHP den Zugriff auf verschachtelte Eigenschaften vereinfachen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-14 04:58:09302Durchsuche

Can PHP's Nullsafe Operator Simplify Nested Property Access?

Einführung des Nullsafe-Operators in PHP

Der Nullsafe-Operator (?->) ermöglicht Entwicklern das Schreiben von Code, der sicher auf Objekteigenschaften zugreift und Methoden, ohne dass explizite Nullprüfungen erforderlich sind. Dies vereinfacht den Code und verbessert die Lesbarkeit, insbesondere in komplexen Objekthierarchien.

Abfrage

Können wir die folgende Anweisung mit dem Nullsafe-Operator umschreiben?

echo $data->getMyObject() != null ? $data->getMyObject()->getName() : '';

Antwort

Ab PHP 8 können wir das nutzen nullsafe-Operator in Verbindung mit dem Null-Koaleszenzoperator (?), um das gewünschte Verhalten zu erreichen.

Lösung

echo $data->getMyObject()?->getName() ?? '';

Das ?-> Der Operator unterbricht die Operatorkette, wenn er auf einen Nullwert stößt, gibt effektiv Null zurück und beendet den Ausdruck. Operatoren, die Objekteigenschaften prüfen oder Methoden aufrufen, gelten als Teil der Kette, einschließlich:

  • Array-Zugriff ([]), Eigenschaftszugriff (->), nullsicherer Eigenschaftszugriff (?->) , statischer Eigenschaftszugriff (::), Methodenaufruf (->), nullsicherer Methodenaufruf (?->) und statischer Methodenaufruf (::)

Zusätzlich Wenn nachfolgende Operatoren in der Kette nicht als Teil der Kette betrachtet werden (z. B. der Verkettungsoperator im Beispiel unten), werden sie nicht kurzgeschlossen:

$string = $data?->getObject()->getName() . " after";

In diesem Fall, wenn $data dies ist null, der Code ergibt Folgendes:

$string = null . " after";

Das obige ist der detaillierte Inhalt vonKann der Nullsafe-Operator von PHP den Zugriff auf verschachtelte Eigenschaften vereinfachen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn