Hello hello.
Je m'intéresse pas mal actuellement à la programmation orientée objet en PHP5 et dans certains exemples je vois des instanciations d'objet du style : $obj = new Obj(); et des fois : $obj =& new Obj();
A quoi correspond cette différence entre = et =& ? merci.
# Plus à rien en php5 !
Posté par Cali_Mero . Évalué à 9.
le & préfixant un appel de fonction sert à désigner que la valeur de retour sera passée par référence plutot que par copie. Une des nouveautés de php5 est une gestion intelligente des valeurs de retour en fonction du type de valeur. Ce qui fait que tu n'as plus à te soucier d'utiliser l'opérateur & en php5, il est tout simplement superflu (sauf dans certains cas bien précis, et là tu le trouveras dans les paramètres d'une fonction/méthode, pas devant l'appel).
Il avait par contre son utilité en php4, car par défaut en php4 la plupart des retours de valeur s'effectuaient par copie. Pour ton exemple : ca veut dire qu'un objet est créé lors du new, et un autre lors de l'affectation !
C'est aussi l'explication du message "Call time pass reference has been deprecated in php5" que beaucoup de codeurs php ont pu rencontrer.
Pour plus de détails, je t'invite à te plonger dans cette page : http://www.php.net/manual/fr/language.references.php
[^] # Re: Plus à rien en php5 !
Posté par Nicolas Blanco (site web personnel) . Évalué à 3.
merci beaucoup pour cette réponse rapide et très complète.
Nico.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.