neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 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.
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 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.