OVH Cloud OVH Cloud

Reference vs pointeur

4 réponses
Avatar
Luc Martineau
Bonjour,

Je débute avec php et je viens de lire que les références ne sont pas des pointeurs
http://ca2.php.net/manual/fr/language.references.arent.php

Donc, si j'ai une fonction qui doit retourner un tableau contenant beaucoup de
données, y aura t'il une différence entre retourner une référence du tableau et
retouner carrément le tableau en entier?
Est-ce comme en C?


Merci

Luc

4 réponses

Avatar
Jean-Marc Molina
Donc, si j'ai une fonction qui doit retourner un tableau contenant
beaucoup de

données, y aura t'il une différence entre retourner une référence du tableau
et
retouner carrément le tableau en entier?

Si tu retournes ton tableau, il sera copié. Si tu retournes une référence,
seule une référence sera retournée, tu peux voir les références commes des
pointeurs pour simplifier.

Dans le cas où tu gères des objets (classes, tableaux...) il vaut mieux
toujours utiliser les références, ca évite de copier 50 fois l'objet en 3
appels de fonction :
- Création d'un objet : $personne =& new personne ('Jean', 'DUPONT');
- Copie d'un objet : function copier (&$personne) et pas ($personne),
l'objet personne serait copié car passé par valeur puis recopié par la
fonction copier qui se charge de faire la copie.
...

JM

Avatar
Jean-Marc Molina
Est-ce comme en C?


J'ai oublié de dire qu'il n'y avait pas de références en C. On trouve
uniquement les références dans le C++, normal qui dit référence dit langage
orienté objet.

JM

Avatar
Etienne SOBOLE
"Luc Martineau" a écrit dans le message de
news: foTrc.99620$
Bonjour,

Je débute avec php et je viens de lire que les références ne sont pas des
pointeurs

http://ca2.php.net/manual/fr/language.references.arent.php


Le références ne sont pas des pointeurs car il ne retournent pas une adresse
memoire.
Ceci dit, pour le retour d'un array, tu peux considérer que le
fonctionnement des références est similaire à celui des pointeurs.

Sans rentrer dans les détails, puisque je ne suis pas sur de les connaitre
complètement,
une réfénrence et un pointeur ont la meme fonction. Simplement, un pointeur
est un entier qui représente une adresse mémoire. Une référence, c'est la
meme chose, sauf que c'est englobé dans une stucture (c'est donc pas un
entier, mais une structure)...

Etienne

Avatar
Luc Martineau
Merci beaucoup à vous deux.

Luc