Avatar billede babysus85 Nybegynder
20. oktober 2002 - 22:22 Der er 14 kommentarer og
2 løsninger

Lægge variabelnavne sammen

Når jeg bruger følgende script får jeg resultatet: "1 2 3". Men jeg vil have "Sara Peter Michell". Hvad skal jeg gøre eller hvad gør jeg forkert????

<?
$navn1 = "Sara";
$navn2 = "Peter";
$navn3 = "Michell";

for ($i=1;$i<=3;$i++){
    echo $navn.$i;
    echo "\n";
}
?>
Avatar billede erikjacobsen Ekspert
20. oktober 2002 - 22:25 #1
echo ${'navn'.$i};
Avatar billede eflow Nybegynder
20. oktober 2002 - 22:41 #2
du kan evt. lægge det ind i et array:
<?
$navn[] = "Sara";
$navn[] = "Peter";
$navn[] = "Michell";

for ($i=0;$i<=2;$i++){
    echo $navn[$i];
    echo "\n";
}
?>
Avatar billede Noone Nybegynder
20. oktober 2002 - 22:51 #3
elflow > Hvorfor et for loop?

foreach ($navn as $etnavn) {
  echo "{$etnavn}\n";
}
Avatar billede eflow Nybegynder
20. oktober 2002 - 23:27 #4
chanoa, hvad mener du ?
laver loop'et pga. det er det han spørger om ..
Avatar billede Noone Nybegynder
21. oktober 2002 - 00:46 #5
elflow > Egentlig ikke, han spørger hvordan man kombinere navn med $i og bruger det som variabel navn...
Avatar billede madd Nybegynder
21. oktober 2002 - 09:30 #6
evt. kan du;

for ($i=1;$i<=3;$i++){
    $str = $navn.$i
    echo $$str."\n";
}

/Mattias
Avatar billede 2989 Nybegynder
21. oktober 2002 - 21:09 #7
babysus85 du kan ikke "opbygge" et variable navn ud fra andre variabler (det som chanoa også skriver)

så enten skal du gøre det på den "hårde" måde:
  echo "$navn1 $navn2 $navn3";

eller lave det på den "rigtige" måde (med et array):
  $navn[0] = "Sara";
  $navn[1] = "Peter";
  $navn[2] = "Michell";

  for($i = 0; $i < 3; $i++)
    echo $navn[$i]." ";

Det sidste eksempel giver dog et mellemrum efter "Michell", hvis det gør noget skal der også en if-sætning ind.
Avatar billede erikjacobsen Ekspert
21. oktober 2002 - 21:16 #8
Jo man kan, 2989. Ikke i alle sprog, men i PHP kan man.
Har du prøvet mit eksempel?
Avatar billede 2989 Nybegynder
21. oktober 2002 - 21:26 #9
erikjacobsen:

okey det viste jeg så ikke (men man bliver klogere hver dag :)

men er det ikke også en lidt skummel måde at programmere på ?
Avatar billede erikjacobsen Ekspert
21. oktober 2002 - 21:33 #10
Skummel? Joh --- såmænd... men meget smart hvis man har
navne i en form - fx. Men egentlig burde man så i stedet for
bruge
  print $_POST['navn'.$i];
Avatar billede madd Nybegynder
21. oktober 2002 - 21:45 #11
2989, jeg må give erikjacobsen ret :) Det kan sagtens lade sig gøre. Enten ved erikjacobsens første metode, min, eller en helt tredje - eval("echo $navn".$i);

/mattias
Avatar billede eflow Nybegynder
21. oktober 2002 - 21:54 #12
chanoa, ja okey, han spurgte ikke efter et loop, men ville lige smide det ind så det var lettere forståeligt :)
nu jeg tænker mig om kunne jeg jo bare lige smide en explode ind bagefter når strengen bare skal kommasepereres :)
Avatar billede babysus85 Nybegynder
22. oktober 2002 - 00:56 #13
Tak fordi I ville hjælpe mig. Jeg skal lige have afprøvet jeres forslag, så vender jeg tilbage. Jeg er lidt spændt. Og forresten...jeg vil egentlig gerne omtales som hun, da jeg er en pige. Tak :)
Avatar billede babysus85 Nybegynder
22. oktober 2002 - 01:05 #14
Jeg vil gerne acceptere Erik Jacobsen's kommentar, men det er jo ikke skrevet som et svar. Jeg har ikke fået afprøvet - eval("echo $navn".$i); - men Erik's passede i hvert fald perfekt til det jeg skulle bruge det til. Jeg anede ikke at man kunne "forme" variabelnavne på den måde.
Avatar billede erikjacobsen Ekspert
22. oktober 2002 - 07:12 #15
Ingen point tak - jeg samler ikke på den slags ligegyldigheder
Avatar billede eflow Nybegynder
22. oktober 2002 - 15:42 #16
babysus85, jamen undskyld at jeg omtalte dig som en mand, til mit forsvar kan jeg jo kun sige der er flest mænd herinde og at det ikke lige fremgik af dit navn at du var en quinde :p
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester