Maison > développement back-end > tutoriel php > L'opérateur Nullsafe de PHP peut-il simplifier l'accès aux propriétés imbriquées ?

L'opérateur Nullsafe de PHP peut-il simplifier l'accès aux propriétés imbriquées ?

Barbara Streisand
Libérer: 2024-12-14 04:58:09
original
300 Les gens l'ont consulté

Can PHP's Nullsafe Operator Simplify Nested Property Access?

Présentation de l'opérateur Nullsafe en PHP

L'opérateur nullsafe (?->) permet aux développeurs d'écrire du code qui accède en toute sécurité aux propriétés des objets et méthodes sans avoir besoin de vérifications nulles explicites. Cela simplifie le code et améliore la lisibilité, en particulier dans les hiérarchies d'objets complexes.

Requête

Pouvons-nous réécrire l'instruction suivante à l'aide de l'opérateur nullsafe ?

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

Réponse

À partir de PHP 8, nous pouvons utiliser le nullsafe en conjonction avec l'opérateur de coalescence nul (?) pour obtenir le comportement souhaité.

Solution

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

Le ?-> L'opérateur rompt la chaîne d'opérateurs lorsqu'il rencontre une valeur nulle, renvoyant effectivement null et mettant fin à l'expression. Les opérateurs qui inspectent les propriétés des objets ou invoquent des méthodes sont considérés comme faisant partie de la chaîne, notamment :

  • Accès au tableau ([]), accès aux propriétés (->), accès aux propriétés nullsafe (?->) , accès aux propriétés statiques (::), appel de méthode (->), appel de méthode nullsafe (?->) et appel de méthode statique (::)

De plus, si les opérateurs suivants de la chaîne ne sont pas considérés comme faisant partie de la chaîne (par exemple, l'opérateur de concaténation dans l'exemple ci-dessous), ils ne seront pas court-circuités :

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

Dans ce cas, si $data est nul, le code donnera :

$string = null . " after";
Copier après la connexion

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