Afficher le nom de la variable

Utilisateur anonyme - 8 oct. 2009 à 17:06
 Utilisateur anonyme - 9 oct. 2009 à 09:36
bonjour

soit le code
<?php
$a=5;
?>

comment afficher et récupérer le NOM de la variable pour ecrire la variable a est 5 (sans mettre "a" en dur !!)

merci
A voir également:

6 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
9 oct. 2009 à 00:51
Salut,

Ce n'est pas possible(à ma connaissance en tout cas). La raison est simple : les noms de variables sont définies par l'utilisateur (toi, donc). Tu es donc réputé connaître les variables que tu utilises. De plus, un nom de variable n'est qu'une représentation de haut niveau d'un pointeur mémoire manipulé par PHP (ou un truc dans l'genre).
S'il s'agit de variables externes (formulaire, url, cookie, etc) manipuler des variables dont on ignore jusqu'au nom est une terrible faille de sécurité.

Concrètement, la solution pour contrôler tes variables en manipulant leur nom (dans une variable ?) est d'utiliser des variables dynamiques.
<?php
$var = 'a';
$$var = 5;
echo $a; // Affichera 5
?>


Cf la doc sur les variables dynamiques : http://fr2.php.net/manual/fr/language.variables.external.php

Jette un oeil par là des fois que ça puisse t'intéresser : http://fr.php.net/get-defined-vars


--
Neige

N'hésitez pas à lire la doc
0
Utilisateur anonyme
9 oct. 2009 à 09:03
C'est bien ce qui me semblait, c'est le concept $$a que j'ai du mal a appréhender.... Je vais relire la doc à ce sujet
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
9 oct. 2009 à 09:08
Ouais, ça perturbe un peu au début...
Imagine simplement que tu remplaces $a par sa valeur dans $$a. Si $a 'b', alors $$a $b.
0
Utilisateur anonyme
9 oct. 2009 à 09:12
il sort d'où le $b?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
9 oct. 2009 à 09:21
Il sort de la valeur de $a. Si $a = 'b', alors $$a = $b

Sans se soucier que la variable $b ait été définie ou non, PHP va considérer que $$a = $b. Ensuite, il évalue $b (qui existe ou non).
Ca revient vraiment à remplacer $a par son contenu.

$ indique qu'il s'agit d'une variable et est suivi directement du nom de la variable qui est une chaine de caractères. Si derrière ce premier $ il y en a un autre, alors celui-ci, suivi d'une chaine de caractères indique la variable à évaluer.
Dans $$a, PHP commence par évaluer $a. S'il s'agit d'une chaine de caractères, il la place derrière le premier $ pour en faire une nouvelle variable.
Ce n'est qu'alors qu'il va s'intéresser au fait que cette variable, dont le nom est lui-même variable, soit définie ou non, accessible ou non, etc.
0
Utilisateur anonyme
9 oct. 2009 à 09:36
Merci de l'explication claire, je comprends lieux la logique...
0