Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
Lenouvdu44 Administrateur
Inscrit le: 01 Aoû 2005 Messages: 4919 Localisation: Grenoble
|
Posté le: 26 Fév 2008 à 21:16 Sujet du message: [RESOLU] variable variable en PHP |
|
|
Bonjour (ça fait bien longtemps que je n'ai pas posté )
Donc, j'ai un tit pb avec mes variables variables, un tit exemple en dira plus :
Code: |
for ($i=1 ; $i<=$nb ; $i++)
{
echo "(*)Titre ".$i." : <br />";
echo '<input type="text" name="titre'.$i.'" value="'.$this->Atitre1.'"/><br />';
}
|
Comme vous pouvez le constater, la valeur par défaut est "$this->Atitre1", or ce "1" est spécifique à la première entrée Titre. Donc au Titre 2, la value sera la même, et je voudrais donc que ma variable passe en "$this->Atitre2".
Je me suis dit, variable variable en fonction de mon $i.
J'ai fait des test :
Code: |
for ($i=1 ; $i<=$nb ; $i++)
{
$titre1 = "blabldkjsldkfjsldkfjslfdkjsdlfkjsdlfkjsdf";
$val1 = "titre";
echo "(*)Titre ".$i." : <br />";
echo '<input type="text" name="titre'.$i.'" value="'.${$val1.$i}.'"/><br />';
}
|
Cela donne bien "blabldkjsldkfjsldkfjslfdkjsdlfkjsdlfkjsdf".
Donc l'idée est bonne, mais dès que je mets :
Code: |
for ($i=1 ; $i<=$nb ; $i++)
{
$val1 = "this->Atitre";
echo "(*)Titre ".$i." : <br />";
echo '<input type="text" name="titre'.$i.'" value="'.${$val1.$i}.'"/><br />';
}
|
Cela ne fonctionne plus : rien ne s'affiche ... hors, $this->Atitre1 existe bien et n'est pas une constante.
Si quelqu'un a une idée ...
merci. _________________ L'nouv qui devient L'vieux
Dernière édition par Lenouvdu44 le 26 Fév 2008 à 23:20; édité 1 fois |
|
Revenir en haut de page |
|
|
vin-moi Administrateur
Inscrit le: 28 Aoû 2004 Messages: 6897 Localisation: France
|
Posté le: 26 Fév 2008 à 22:51 Sujet du message: |
|
|
Salut
C'est faisable avec la fonction eval()
Ca devrait donner quelque chose comme ça au niveau du code :
Code: |
value="' . eval('$this->Atitre' . $i) . '" |
voilà _________________ |
|
Revenir en haut de page |
|
|
Lenouvdu44 Administrateur
Inscrit le: 01 Aoû 2005 Messages: 4919 Localisation: Grenoble
|
Posté le: 26 Fév 2008 à 23:00 Sujet du message: |
|
|
Marche pô
Merci vinouze _________________ L'nouv qui devient L'vieux |
|
Revenir en haut de page |
|
|
Lenouvdu44 Administrateur
Inscrit le: 01 Aoû 2005 Messages: 4919 Localisation: Grenoble
|
Posté le: 26 Fév 2008 à 23:20 Sujet du message: |
|
|
EDIT : si si, cela fonctionne, juste bien faire la fonction eval(), voici ce que cela donne :
Code: |
for ($i=1 ; $i<=$nb ; $i++)
{
eval("\$value = \$this->Atitre" . $i . ";");
echo "(*)Titre ".$i." : <br />";
echo '<input type="text" name="titre'.$i.'" value="'.$value.'" /><br />';
}
|
_________________ L'nouv qui devient L'vieux |
|
Revenir en haut de page |
|
|
Lenouvdu44 Administrateur
Inscrit le: 01 Aoû 2005 Messages: 4919 Localisation: Grenoble
|
Posté le: 27 Fév 2008 à 2:19 Sujet du message: Meilleure solution :ah: |
|
|
Meilleure solution
Code: |
for ($i=1 ; $i<=$nb ; $i++)
{
$value = $this->{'Atitre'.$i};
echo "(*)Titre ".$i." : <br />";
echo '<input type="text" name="titre'.$i.'" value="'.$value.'" /><br />';
}
|
De HyWaN sur PHPFrance _________________ L'nouv qui devient L'vieux |
|
Revenir en haut de page |
|
|
Ajouter à :
|
|