Gå til innhold

formatering av variabelnavn


Anbefalte innlegg

Et litt tricky problem. Jeg har tre variabler som heter $tot1, $tot2 og $tot3. I en for-løkke som ser slik ut:

 

for ($i=1; $<4; $i++) { ...code... }

 

vil jeg hente ut innholdet i en variabel pr "runde" i for-løkken. Altså, jeg vil skrive noe slikt som dette inni løkken:

 

echo $tot{$i} for å referere til $tot1 i første runde, $tot2 i andre runde og $tot3 i tredje runde. Skjønner...? Litt vanskelig å forklare det der..

 

Håper noen kan hjelpe.

Endret av cerveza
Lenke til kommentar
Videoannonse
Annonse

Hmm.. høres ut som et array-problem.

Bruker du arrays kan du løse det på følgende måte:

 

 //Alternativ 1 
$int_Tot = Array(10,100,1000);
for($i=1;$i<=count($int_Tot);$i++)
{
    echo($int_Tot[$i-1] . "<br>");
}

 

Hvis du derimot er helt avhengig av å bruke de navngitte variablene i løkken, vil noe slikt fungere:

 

 //Alternativ 2
 $tot1 = 10;
 $tot2 = 100;
 $tot3 = 1000;
 
 for($i=1;$i<4;$i++)
 {
     $strVarname = "tot$i";
     echo($$strVarname . "<br>");
 }

Endret av b-urn
Lenke til kommentar

Alternativ 3:

$tall1 er det samme som å skrive ${'tall1'}

På den måten kan du gjøre løkken slik:

$tot1 = 10;
$tot2 = 100;
$tot3 = 1000;

for($i=1;$i<4;$i++)
{
    echo ${'tot'.$i}."<br>";
}

 

EDIT:

Alternativ 4: :laugh:

eval() kan brukes til å "evaluere" en streng til kode, og utføre den:

$tot1 = 10;
$tot2 = 100;
$tot3 = 1000;
 
for($i=1;$i<4;$i++)
 {
   eval("echo \$tot".$i." .'<br>';");
}

Ubrukelig i dette tilfellet, men kan være nyttig i andre sammenhenger. Anse dette som en demonstrasjon, og ikke bruk det...

Endret av sven-o
Lenke til kommentar
Alternativ 3:

$tall1 er det samme som å skrive ${'tall1'}

På den måten kan du gjøre løkken slik:

$tot1 = 10;
$tot2 = 100;
$tot3 = 1000;

for($i=1;$i<4;$i++)
{
    echo ${'tot'.$i}."<br>";
}

 

EDIT:

Alternativ 4: :laugh:

eval() kan brukes til å "evaluere" en streng til kode, og utføre den:

$tot1 = 10;
$tot2 = 100;
$tot3 = 1000;
 
for($i=1;$i<4;$i++)
 {
   eval("echo \$tot".$i." .'<br>';");
}

Ubrukelig i dette tilfellet, men kan være nyttig i andre sammenhenger. Anse dette som en demonstrasjon, og ikke bruk det...

Alternativ 3 funker glimrende :yes::yes:

 

thx :cool:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...