Page 1 sur 1
var_dump different
Posté : 30 mai 2008, 15:41
par x@v
Bonjour,
je fais un var_dump sur des sessions en cour dans ma page
echo '<p>'.var_dump($_SESSION).'</p>';
Code : Tout sélectionner
array(4) { ["idCategorie"]=> &string(1) "2" ["caddie"]=> &array(2) { [2]=> int(3) [5]=> int(9) } ["nom"]=> &string(3) "x@v" ["civilite"]=> &string(2) "M." }
Je ne vois pas à quoi corresponde les & devant les types ?
Merci
Posté : 30 mai 2008, 16:03
par vince_weed
En prog classique je sais que cela signifie que tu obtient la valeur par reférence; je suppose donc que dans ce cas, cela signifie que tu a dans le tableau, des reférence vers les valeurs des types (en memoire physiques). Mais ce n'est qu'une idée, donc a confirmer par quelqu'un de plud calé que moi
Posté : 30 mai 2008, 16:12
par savageman
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.
@+
Posté : 30 mai 2008, 16:19
par vince_weed
c'est bien ce que je pensait

. Par contre je voulait savoir si il y avait une équivalence en PHP5 au pointeurs de la prog en C++ (ou autre language objet) mais a mon avis cela n'existe pas

Posté : 31 mai 2008, 12:27
par x@v
Mon problème est que je n'utilise pas les références dans mon programme ?
Je ne comprend pas d'où sa vient.
Et c'est inquiétant parce que tout fonctionne en local mais sur le serveur les sessions se mélange.
Quand je clique sur supprimer un élément du panier ou supprimer.
http://developpus.com/mvc/index.php?page=produits&cat=2
et que je suis connecté
http://developpus.com/mvc/index.php?page=connection
avec
login:x@v
mot de passe:cv
Il change ma session nom ?
j'ajoute qu'en local mon var_dump()
ne renvoie pas de variable avec référence
Code : Tout sélectionner
Array ( [idCategorie] => 1 [img] => Autumn_Leaves.jpg Tree.jpg Humpback_Whale.jpg [nomClient] => [chemin] => [caddie] => Array ( [16] => 1 [17] => 1 ) )
1
Posté : 31 mai 2008, 23:20
par Hywan
c'est bien ce que je pensait

. Par contre je voulait savoir si il y avait une équivalence en PHP5 au pointeurs de la prog en C++ (ou autre language objet) mais a mon avis cela n'existe pas

En PHP 5, les objets sont tous passés par référence, le reste est envoyé par valeur — par défaut —. Tu peux utiliser le signe & pour forcer un passage en référence (équivalent des pointeurs).
Mais je doute que la notion de pointeur existe dans un langage interprété …