Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann der Nullsafe-Operator (?-) von PHP Nullzeigerausnahmen verhindern?

Wie kann der Nullsafe-Operator (?-) von PHP Nullzeigerausnahmen verhindern?

Patricia Arquette
Freigeben: 2024-12-19 07:07:26
Original
656 Leute haben es durchsucht

How Can PHP's Nullsafe Operator (?-) Prevent Null Pointer Exceptions?

Nullsafe-Operatoren in PHP: Bedingte Objektnavigation erreichen

In PHP kann der Zugriff auf Objekteigenschaften und das Aufrufen von Methoden möglicherweise zu Nullzeigerausnahmen führen, wenn Das Objekt ist null oder verfügt nicht über das angeforderte Mitglied. Um dieses Problem zu beheben, ermöglicht der in PHP 8 eingeführte Nullsafe-Operator (?-) die sichere Navigation von Objekteigenschaften und -methoden.

Bedenken Sie die folgende Anweisung:

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

Diese Anweisung prüft, ob die Das $data-Objekt verfügt über die Eigenschaft getMyObject() und ist nicht null. Wenn die Eigenschaft vorhanden ist und nicht null ist, greift sie auf die getName()-Eigenschaft innerhalb dieses Objekts zu. Wenn die Eigenschaft jedoch nicht existiert oder null ist, wird die Anweisung nicht weiter ausgeführt.

Mit dem Nullsafe-Operator können wir die Anweisung wie folgt umschreiben:

echo $data->getMyObject()?->getName();
Nach dem Login kopieren

In dieser Anweisung Wenn $data null ist oder nicht über die Eigenschaft getMyObject() verfügt, wird die Operatorkette beendet und null zurückgegeben. Dadurch können wir fehlende Eigenschaften oder Methodenaufrufe ausnahmslos ordnungsgemäß behandeln.

Der Nullsafe-Operator funktioniert mit den folgenden Operatoren, die auf Objekteigenschaften und -methoden zugreifen:

  • Array-Zugriff ([]) : $data?->[0]
  • Eigenschaftszugriff (->): $data?->name
  • Nullsicherer Eigenschaftszugriff (?->): $data?->name
  • Statischer Eigenschaftszugriff (::): Parent::name
  • Methodenaufruf (->): $data->getName()
  • Nullsafe-Methodenaufruf (?->): $data?->getName()
  • Statischer Methodenaufruf (::): Parent::getName()

Zum Beispiel der folgende Code:

$string = $data?->getObject()->getName() . " after";
Nach dem Login kopieren

ist äquivalent zu:

$string = (isset($data) && $data !== null) ? $data->getObject()->getName() . " after" : null;
Nach dem Login kopieren

wenn $data null ist.

Durch die Verwendung des Nullsafe-Operators Wir können saubereren und prägnanteren Code schreiben und gleichzeitig sicherstellen, dass es keine Nullzeiger-Ausnahmen gibt.

Das obige ist der detaillierte Inhalt vonWie kann der Nullsafe-Operator (?-) von PHP Nullzeigerausnahmen verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage