[résolu] Variables dynamiques dans des classes

Variables dynamiques dans des classes [résolu] - PHP - Programmation

Marsh Posté le 14-03-2007 à 18:27:30    

Bonjour à tous,
 
je développe un jeu en php à mes heures perdues, j'essaye de faire avec des classes, et au cours de mon développement j'ai essayé d'utiliser des variables dynamiques genre :

Code :
  1. $var = "ville";
  2. echo $$ville ;


 
le truc tout simple, sauf moi je tente de le faire avec des classes, je m'explique :
dans ma classe ville par exemple, j'ai 20 types de constructions, donc 20 atributs que j'ai nommé const1 à const20.
on va supposer que $ville->constX me retourne le nom de la Xeme construction, le nom je le recupère de la BD.
donc avec mon fetch_array j'ai $data["const1"] à $data["const20"].
 
donc, ce que je veux c'est :
au lieu de faire :

Code :
  1. $ville->const1 = $data["const1"]
  2. $ville->const2 = $data["const2"]
  3. ...
  4. $ville->const20 = $data["const20"]


donc 20 lignes.
je veux faire quelque chose genre ça :

Code :
  1. for($i=1;$i<=20;$i++){
  2.   $const = 'ville->const'.$i;
  3.   $val_const = "data['const".$i."']";
  4.   ${$const} = ${$val_const};
  5. OU CA :
  6.   ${"ville->const".$i} = ${"data['const".$i."']"};
  7.  }


 
mais aucun des deux codes ne fonctionne :s du coup je suis obligéz de me taper les 20 lignes a chaque fois.
 
des idées ?
 
Merci d'avance :)


Message édité par naeh le 15-03-2007 à 19:57:14
Reply

Marsh Posté le 14-03-2007 à 18:27:30   

Reply

Marsh Posté le 14-03-2007 à 19:43:29    

Et les tableaux ? :spamafote:
 
Débrouille-toi plutôt pour pouvoir faire ça :
 
for ($i = 0; $i < 20; $i++) {
  $ville->const[$i] = $data['const'][$i];
}


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 15-03-2007 à 18:43:51    

avec les tableaux le probleme est resolu coté classe ($ville->const[]) mais  pas de l'autre coté, $data[] est le resultat d'un fetch_array donc c'est deja un tableau bien défini et ça m'mbetterai de repasser en fetch_arrow parce que la structure de mes tables n'est pas encore finalisé (je bidouille toujours :))
 
Merci de votre aide :)

Reply

Marsh Posté le 15-03-2007 à 19:23:07    

for ($i = 0; $i < 20; $i++) {  
  $ville->const[$i] = $data['const' . $i];  
}


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 15-03-2007 à 19:56:37    

impeccable merci beaucoup :)
 
comme cette concatenation ne marchait pas pour la class je pensais que c'etait pareil pour les tableaux.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed