par
savageman » 30 mai 2008, 16:12
C'est tout à fait ça !
En gros, un emplacement mémoire peut avoir plusieurs références (plusieurs variables qui pointent vers le même contenu en mémoire).
Une référence n'est PAS un alias pour une autre variable.
Par défaut, lorsqu'on fait :
$var = 'toto';
Alors 'toto' à une référence : $var.
Si tu fais en plus :
$foo = &$var;
Alors 'toto' aura 2 références : $var et $foo.
Si tu fais :
unset($var);
'toto' existe toujours car une référence existe encore vers lui (c'est $foo).
Enfin, si tu fais :
unset($foo);
'toto' n'a plus de référence, donc il est supprimé de la mémoire.
@+
C'est tout à fait ça !
En gros, un emplacement mémoire peut avoir plusieurs références (plusieurs variables qui pointent vers le même contenu en mémoire).
Une référence n'est PAS un alias pour une autre variable.
Par défaut, lorsqu'on fait :
$var = 'toto';
Alors 'toto' à une référence : $var.
Si tu fais en plus :
$foo = &$var;
Alors 'toto' aura 2 références : $var et $foo.
Si tu fais :
unset($var);
'toto' existe toujours car une référence existe encore vers lui (c'est $foo).
Enfin, si tu fais :
unset($foo);
'toto' n'a plus de référence, donc il est supprimé de la mémoire.
@+