JeuWeb - Crée ton jeu par navigateur
je... demande de l'aide ^^ - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : je... demande de l'aide ^^ (/showthread.php?tid=929)



je... demande de l'aide ^^ - max - 13-03-2007

bonjour
je ne savais pas trop quoi metre comme titre car le pb me semble assez complexe (a moi, pauvre noob de la prog ^^)

j'ai donc des arrays contenant les caractéristiques des vaisseaux (j'en poste 1 mais il y en a 17)
$vsx1 = array(500,40,1,10,5000,740,0.9,0,"transporteur");
ensuite je cherche a écrire le nom du vaisseau et le nombre de vaisseaux de ce type qu'on a deja. le tout dans une boucle pour les 17vaisseaux

Code PHP :
<?php for ($i = 0; $i <= 16; $i++)
{
if (
$flotte[$i] !=NULL){ // si on a un vsx de se type
$vsx = 'vsx'.$i.'[8]'; // array numéro 8 correspond au nom
echo $$vsx; ?><input type="text" name="vsx<?=$i?>" size=1/> total: <?php echo $flotte[$i];?><br/> <?php }
}
?>

maleureusement echo $$vsx; n'affiche rien alors que le reste s'affiche sans problèmes

voila moi je bloque bloque bloque... si vous pouvez m'aider ca serai sympa
merci


RE: je... demande de l'aide ^^ - nemesis_elite - 13-03-2007

Lup

Code PHP :
<?php 
echo $$vsx;
Interressant ^^, c'est pas plutôt, comme çà, simplement :
Code PHP :
<?php 
echo $vsx;



RE: je... demande de l'aide ^^ - Sephi-Chan - 14-03-2007

C'est là une variable variable je pense Wink.

As-tu essayé en faisant ${$vsx} ?


Sephi-Chan


RE: je... demande de l'aide ^^ - Yoda54 - 14-03-2007

Bonsoir,
Je crois me rappeler avoir déjà vu ce type d'écriture avec deux '$' dans u nbouquin. Cela m'avait surpris mais je n'ai jamais cherché à vérifier cette écriture (jamais eu le besoin sans doute).
Sinon, de mon côté, j'aurais écrit ça comme cela:
Code PHP :
<?php 
echo ${'vsx'.$i}[8]
Cela évite de passer par une variable intermédiaire et je ne crois pas que le script y perde en lisibilité.

Edit: Ca y est, j'ai retrouvé. Le double $ est à utiliser entre "; cela permet d'écrire l'intitulé de la variable (et non ce qu'elle contient). En fait, cela revient à écrire echo $vsx.
En résumé:
Code PHP :
<?php 
$i
=1;
$vsx = 'vsx'.$i.'[8]';
echo
$vsx; // Affiche vsx1[8]
echo "$$vsx"; // Affiche également vsx1[8]
echo ${$vsx}; // N'affiche rien - je suppose que cela vient du fait que php recherche une varaiable appelée $vsx1[8] et non l'élément 8 du tableau $vsx1;
echo ${'vsx'.$i}[8]; // Affiche le nom du vaisseau de type 1



RE: je... demande de l'aide ^^ - carlou - 14-03-2007

bien vu le echo ${'vsx'.$i}[8];
j'arrivais pas a m'en souvenir


RE: je... demande de l'aide ^^ - max - 14-03-2007

ha super ca marche merci beaucoups!!
et aparament ca a été profitable a certains ici parcequ'il y a pas mal de monde qui ne savais pas Wink lol
alé a+ et merci


RE: je... demande de l'aide ^^ - Plume - 14-03-2007

Variable variable :: petites base ~~> http://www.siteduzero.com/tuto-3-178-1-faire-joujou-avec-des-variables.html#ss_part_3


RE: je... demande de l'aide ^^ - Shidame - 14-03-2007

Autre solution :

Au lieu d'utiliser $vsx1, $vx2, $vsx3 etc...

Tu peux faire un multi-array : $vsx[1], $vsx[2] etc.. ce qui te permet plus de possibilités et une facilité de traitement.


RE: je... demande de l'aide ^^ - max - 14-03-2007

ha wai merci DämEn! je l'avais lu ce cour (normal en meme temps ^^) mais c'est vrai que je m'en rapelai pas du tout! un petit rapel ne fait de mal a personne
sinon Shidame je prefere rester en vsx1,vsx2 meme si c'est un peu moin optimisé parceque je prefere quand meme comprendre du 1er coup d'oeuil mes scripts. peut etre après mais pour l'instant c'est prématuré Wink merci quand meme