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
Susan Sarandonoriginal
2024-12-13 06:21:09750parcourir

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() : '';

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

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

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";

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!

Déclaration:
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