Maison > développement back-end > tutoriel php > Comment l'opérateur Nullsafe de PHP (?-) peut-il empêcher les exceptions de pointeur nul ?

Comment l'opérateur Nullsafe de PHP (?-) peut-il empêcher les exceptions de pointeur nul ?

Patricia Arquette
Libérer: 2024-12-19 07:07:26
original
658 Les gens l'ont consulté

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

Opérateurs Nullsafe en PHP : réalisation d'une navigation conditionnelle entre objets

En PHP, l'accès aux propriétés des objets et aux méthodes d'appel peut potentiellement entraîner des exceptions de pointeur nul si l'objet est nul ou n'a pas le membre demandé. Pour résoudre ce problème, l'opérateur nullsafe (?-) introduit dans PHP 8 permet une navigation sécurisée dans les propriétés et les méthodes des objets.

Considérez l'instruction suivante :

echo $data->getMyObject() != null ? $data->getMyObject()->getName() : '';
Copier après la connexion

Cette instruction vérifie si le L'objet $data a la propriété getMyObject() et si elle n'est pas nulle. Si la propriété existe et n’est pas nulle, elle accède à la propriété getName() dans cet objet. Cependant, si la propriété n'existe pas ou est nulle, l'instruction ne continuera pas.

En utilisant l'opérateur nullsafe, nous pouvons réécrire l'instruction comme :

echo $data->getMyObject()?->getName();
Copier après la connexion

Dans cette instruction , si $data est null ou n'a pas la propriété getMyObject(), la chaîne d'opérateurs est terminée et null est renvoyé. Cela nous permet de gérer les propriétés manquantes ou les appels de méthode avec élégance sans exceptions.

L'opérateur nullsafe fonctionne avec les opérateurs suivants qui accèdent aux propriétés et méthodes des objets :

  • Accès au tableau ([]) : $data?->[0]
  • Accès à la propriété (->) : $data?->name
  • Accès à la propriété Nullsafe (?->): $data?->name
  • Accès à la propriété statique (::): Parent::name
  • Appel de méthode (->) : $data->getName()
  • Appel de méthode Nullsafe (?->): $data?->getName()
  • Appel de méthode statique (::): Parent::getName()

Par exemple, le code ci-dessous :

$string = $data?->getObject()->getName() . " after";
Copier après la connexion

est équivalent à :

$string = (isset($data) && $data !== null) ? $data->getObject()->getName() . " after" : null;
Copier après la connexion

si $data est null.

En utilisant l'opérateur nullsafe, nous pouvons écrire un code plus propre et plus concis tout en garantissant l'absence d'exceptions de pointeur nul.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal