Retourner aux forums || Retourner au forum Programmation.php

Programmation.php : [n00b] Demande d'une petite explication...

Posté par Slainer (Jabber id, page perso, ) le 21 mars 2006
0
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.

> Lire le message (2 commentaires, moyenne: 6).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Plus à rien en php5 !

Posté par Cali_Mero () le 21/03/2006 à 10:28. (lien). Évalué à 9.

Bonjour,

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

--
#define MAGIC 0xdefaced /* I should've patented this number -cliph */
  • [^]Re: Plus à rien en php5 !

    Posté par Slainer (Jabber id, page perso, ) le 21/03/2006 à 10:49. (lien). Évalué à 3.

    parfait :).

    merci beaucoup pour cette réponse rapide et très complète.

    Nico.

Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.php