DepanneTonPC, dépannage et aide informatique

Bienvenue : Connexion | Inscription
La date/heure actuelle est 21 Nov 2024 à 22:11 FAQ | Rechercher | Membres | Groupes

[RESOLU] variable variable en PHP


 
 
Ce que nous vous conseillons :
  1. Lisez les réponses ci-dessous où vous trouverez des conseils et de l'aide de la part des autres utilisateurs
  2. Avant de faire des modifications sur votre système ou d'installer des logiciels, nous vous recommandons fortement de cliquer ici pour scanner Windows afin de détecter les erreurs de registre.
Poster un nouveau sujet   Répondre au sujet    DepanneTonPC Index du Forum -> Programmation et Graphisme
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
Lenouvdu44
Administrateur


Inscrit le: 01 Aoû 2005
Messages: 4919
Localisation: Grenoble

MessagePosté le: 26 Fév 2008 à 21:16    Sujet du message: [RESOLU] variable variable en PHP Répondre en citant

Bonjour (ça fait bien longtemps que je n'ai pas posté Ah)
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
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
vin-moi
Administrateur


Inscrit le: 28 Aoû 2004
Messages: 6897
Localisation: France

MessagePosté le: 26 Fév 2008 à 22:51    Sujet du message: Répondre en citant

Salut Smile

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à Smile
_________________
Smile
 
 
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Lenouvdu44
Administrateur


Inscrit le: 01 Aoû 2005
Messages: 4919
Localisation: Grenoble

MessagePosté le: 26 Fév 2008 à 23:00    Sujet du message: Répondre en citant

Marche pô Razz
Merci vinouze Wink
_________________
L'nouv qui devient L'vieux 
 
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Lenouvdu44
Administrateur


Inscrit le: 01 Aoû 2005
Messages: 4919
Localisation: Grenoble

MessagePosté le: 26 Fév 2008 à 23:20    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Lenouvdu44
Administrateur


Inscrit le: 01 Aoû 2005
Messages: 4919
Localisation: Grenoble

MessagePosté le: 27 Fév 2008 à 2:19    Sujet du message: Meilleure solution :ah: Répondre en citant

Meilleure solution Ah
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
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Ajouter à : Scoopeo del.icio.us Digg this Technorati fuzz
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    DepanneTonPC Index du Forum -> Programmation et Graphisme Toutes les heures sont au format GMT + 2 Heures
 
Page 1 sur 1 

 
Sauter vers:  

Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum