Maison  >  Article  >  développement back-end  >  Quand et pourquoi l'attribution de la valeur de retour de new par référence est-elle obsolète ?

Quand et pourquoi l'attribution de la valeur de retour de new par référence est-elle obsolète ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-24 04:12:30769parcourir

When and Why Is Assigning the Return Value of new by Reference Deprecated?

Attribution de la valeur de retour de new par dépréciation de référence

Énoncé du problème

Tentative d'attribuer la valeur de retour de new par reference déclenche l'erreur PHP "L'attribution de la valeur de retour de new par référence est obsolète."

Explication détaillée

Cette erreur se produit lorsque vous essayez d'attribuer le résultat de new (utilisé pour créer un nouvel objet) à une variable en utilisant l'opérateur de référence (&). En PHP4, cet idiome était couramment utilisé pour passer la référence d'un objet à une autre variable. Cependant, en PHP5, cette pratique est obsolète en raison d'une utilisation abusive potentielle et de confusion.

Solution

La syntaxe correcte pour attribuer une référence d'objet est :

<code class="php">$variableName =& $objectName;</code>

Dans l'exemple fourni, le code devrait plutôt être :

<code class="php">$obj_md =& $mdb2;</code>

Remarque supplémentaire

L'idiome obsolète attribue la valeur de retour de new directement à une variable utilisant l'opérateur de référence. Par exemple :

<code class="php">$obj_md =& new MDB2();</code>

Cette pratique était non seulement obsolète dans PHP5, mais entraînait également un comportement inattendu si la variable était définie précédemment.

Pour éviter l'avertissement de dépréciation et garantir que le code se comporte correctement , utilisez la syntaxe révisée avec l'opérateur =& pour attribuer des références aux objets.

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