Bonjour à tous !
Je programmais un truc, lorsque je me suis posé une question au sujet des passages par référence.
Pour résumer ma question, voici un bout de code ultra-simplifié:
Question #1:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class Objet { private $var3; public function __construct(&$var2){ $this->var3 = var2; } public function getVar(){ return $this->var3; } } $var1 = array('bidon', 'nawak'); $objet = new Objet($var1);
Est-ce qu'à la fin de mon code, je stock 1 (var1) ou 2 (var1 & var3) tableau en mémoire, vu qu'il y a eu le passage par référence ?
Partie 2:
Si je rajoute, à la toute fin, ce code:
Question #2:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 unset($var1); var_dump($objet->getVar());
Est-ce que je vais voir mon tableau avec bidon et nawak ?
Question #3:
Si la réponse à la question 2 était oui; Comment peut-ont faire pour réellement stocker une référence dans un objet instancié ?
Question #4:
À confirmer: si je faisait pas un passage par référence, var2 serait détruite à la fin de l'exécution du constructeur. Donc il y aurais uniquement eu trois tableaux en mémoire au moment de faire l'affectation du contenu de var3.
Merci bien !
Partager