POO: Passage par référence, question technique.
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é:
Code:
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); |
Question #1:
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:
Code:
1 2 3
|
unset($var1);
var_dump($objet->getVar()); |
Question #2:
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 !