Maison > développement back-end > tutoriel php > Comment les opérateurs de fusion Null Safe et Null de PHP 8 peuvent-ils simplifier l'accès aux propriétés des objets ?

Comment les opérateurs de fusion Null Safe et Null de PHP 8 peuvent-ils simplifier l'accès aux propriétés des objets ?

Susan Sarandon
Libérer: 2024-12-13 06:21:09
original
746 Les gens l'ont consulté

How Can PHP 8's Null Safe and Null Coalescing Operators Simplify Object Property Access?

Exploiter l'opérateur Null Safe et l'opérateur Null Coalescing en PHP 8

Dans le codage PHP, vous pouvez rencontrer des situations dans lesquelles vous souhaitez accéder à des propriétés ou méthodes d’un objet uniquement si l’objet n’est pas nul. Traditionnellement, cela nécessitait des instructions conditionnelles verbeuses.

Navigation sécurisée dans PHP 8

PHP 8 introduit l'opérateur null safe (?->), qui vous permet de naviguer en toute sécurité parcourir les objets sans provoquer d’erreurs fatales dues à des valeurs nulles. En conjonction avec l'opérateur de coalescence nul (??), vous pouvez enchaîner élégamment les appels de l'opérateur.

Exemple

Considérez le code suivant :

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

Avec l'opérateur null safe, vous pouvez simplifier cela en :

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

Dans ce cas, si $data est nul, la chaîne est terminée et le résultat sera nul.

Opérateurs de la chaîne

Les opérateurs qui inspectent les propriétés ou les méthodes d'un objet font partie du null-safe chaînage :

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

Exemple :

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

Si $data est nul, $string devient nul. " après " puisque la concaténation ne fait pas partie de la chaîne.

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