Syntaxe php pr variable

[Résolu]
Signaler
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
-
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
-
bonjour a tous,



voila dans mon code je désire effectuer une boucle pr éviter d'avoir a refaire 100 fois la meme chose(d'ou l'interet )

et j'ai un probleme de syntaxe pr mes variables:

mes variables ont pr noms :

$abs1, $abs2 $abs3.....etc...

donc je fais une boucle

for($i=1;$i<nb_var;$i++)

$test=$abs.$i*$echelle_larg

enfin bon en gros on s'en fous de ce que je fais mais le pb se situe sur la syntaxe pr $abs

un peu d'aide?

merci

9 réponses

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,

pour le tableau perso j'aurais gardé ton truc en faisant ça (à tester j'ai écrit ça de tête donc ça peut peut-être foirer) :

for($i=1;$i<$nb_var;$i++)
$test=${'abs'.$i}*$echelle_larg;

Sinon c'est un peu naze car à la fin ton $test vaudra nb_var-1*$echelle_larg bref je vois pas où tu veux en venir...
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
855
Date d'inscription
mardi 19 novembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009
1
salut..

que veux tu faire exacteùent?

si

$abs vaut 1

$i vaut 2

et $echelle_larg vaut 3

que doit valoir test ?





ps: quand tu postes pour un problème PHP, pense à mettre l'erreur retorunée, merci ;)
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Hello,

au lieu d'utiliser $abs1, $abs2...
il vaut mieux utiliser un tableau :
$abs[1] = xxx
$abs[2] = yyy
etc

Puis un truc du genre :

<?php
$aTab = array (1,2,3,4,5);
$echelle = 2;

function myMap (&$val, $clef, $echelle) {
$val *= $echelle;
}


array_walk ($aTab, 'myMap', $echelle);
print_r ($aTab);
?>
Messages postés
855
Date d'inscription
mardi 19 novembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009
1
hou pinaize !!!

j'avais pas compris ce qu'il voulait faire par $arg.$i !!

effectivement, utilise un tableau !!!

-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
C'est inutile et ça prend plus de temps. Tu bouffes des ressources.
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
$i=0;
$i2=10000;
$test='';
$abs1=$abs2=$abs3=$abs4='blabla';
$echelle_larg=5;
//------------------------------------
//CODE A BENCHER
//------------------------------------
while($i<10000)
{
for($i2=1;$i2<5;$i2++)
$test=${'abs'.$i2}*$echelle_larg;

$i++;
}
//-------------------------------------
//FIN DU CODE A BENCHER
//-------------------------------------

: 0.075 secondes

ta solution :
$abs[1]=$abs[2]=$abs[3]=$abs[4]='blabla';
$echelle_larg=5;
$aTab = array (1,2,3,4);
$echelle = 2;

function myMap (&$val, $clef, $echelle) {
$val *= $echelle;
}
//------------------------------------
//CODE A BENCHER
//------------------------------------
while($i<10000)
{
array_walk ($aTab, 'myMap', $echelle);

$i++;
}
//-------------------------------------
//FIN DU CODE A BENCHER
//-------------------------------------

0.135 secondes ^^

(désolé mais bon j'y tenais lol)

Après si il n'a qu'une seule variable $test c'est sûr que nos deux solutions ne servent à rien :-)
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Je testerai, lol, parce que j'ai aussi benché ma solution avec 50000 entrées au tableau, et que j'obtiens 0,087 chez moi.
Mais ceci dit, je ne parlais pas de temps : par ressources, j'entendais espace mémoire, à créer autant de variable, alors qu'un tableau est beaucoup plus économique.
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
1
Salut a vous deux,

bon en fait je vais redire ce que j'ai dit:

"enfin bon en gros on s'en fout de ce que je fais mais le pb se situe sur la syntaxe pr $abs"



en fait dans mon code je ne fais pas du tout cela:

$test=$abs.$i*$echelle_larg



j'avais mis ca juste pour avoir la syntaxe ...

en fait voici mon code:

imagedashedline($image,$marge+($abs_z0*$echelle_larg),$marge_haut,$marge+($abs_z0*$echelle_larg),$hauteur_img-$marge,$noir);



et je dois tracer plusieurs traits à différentes abscisses

et je voudrais que mon code soit dynamique donc je fais une boucle
suivant le nbre de traits a tracer et j'appele qu'une seule fois la
fonction imagedashedline!

dans mon code donc c'est $abs_z0 puis z1 ;z2 etc.... qui varie



voila j'espere que c'est plus clair et je vais essayer vos methodes pr
voir laquelle semble le mieux correspondre mais je pense que c'est
anthomicro...



en tout cas merci a vous
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
1
c'est pareil apres une requete SQL



while ($retour = mysql_fetch_array($reponse) )



si ma table comporte 40 champs

et que je veux mettre chacun dans un tableau je fais

while ($retour = mysql_fetch_array($reponse) )//recupere les lignes de la réponse sql dans un tableau

{

$tablo0[$i]=$retour[0];

$tablo1[$i]=$retour[1];

$tablo2[$i]=$retour[2];

$tablo3[$i]=$retour[3];

$tablo4[$i]=$retour[4];


etc..........

$i=$i+1;
}



mais la du coup c'est surement possible de n'écrire qu'une seule ligne?non?

avec ${'tablo'.$i} ou quelque chose du genre non?