Hvad med at bruge et array så?
Noget ala dette tror jeg men det er bestemt utestet :-)
for ( $i=0; $i<10; i++) {
echo ${'variabel_'.$i};
}
brug et array - jeg kan ikke gennemskue en situation, hvor ovenstående nogensinde kan være en fordel over et array.
barklund >>
Jeg har faktiskt været ud for at skulle bruge bruge dynamiske variabler.
Case:
Der hentes et serialized array i en database, hvor nul, et eller flere config-variabler kan være sat. Eftersom det i casen var et pluginsystem der brugte den samme motor til mange plugins kunne disse vaiabler ikke navngives på forhånd.
Måden vi erklæredre variablerne på var med extract($cfgArray) og derfor havde vi brug for i et par cases at lave loops som ovenstående..
måske lidt langhåret kommentar - i så fald sorry :-)
Det fungerte som horsmark skrev..
Kan jeg lage sessionvariabelnavn på samme måte?
$_SESSION['{'lastname_'.$i}'] = ${'lastname_'.$i};
Er det ikke dette her du vil?
for ( $i=0; $i<10; $i++) {
eval('echo $variabel_'.$i.';');
}?>
yes MEN metoden er _ikke_ at foretrække da koden bliver ugennemskuelig!!!
Bør kun bruges hvis det virkeligt er strengt nødvendigt!
Ups! Det var vist stort set det samme som horsmark tidlige foreslog. Sorry.
horsmark, extract() er noget nær det grimmeste i PHP - endnu grimmere end ${} :) Så at bruge en grim metode til at løse et grimt problem... :/
Du kunne jo bare have brugt $cfgArray direkte uden at extracte det. Og så kunne du have sat manglende elementer i dette i en løkke.
og for at fortsætte hvor barklund slap. "eval() er noget nær det grimmeste i PHP - endnu grimmere end extract()"
Arrays vil i 99.999% af tilfældende være at foretrække - også fordi det nok vil køre lidt hurtigere, og at det er nemmere at se hvad man arbejder med. Og man får en masse foræret til at behandle dem med - bl.a. foreach()
-fangel
Jeg synes nu at extract er værre end eval. Det kommer selvfølgelig an på, hvad man bruger eval() til, men extract har kun en funktion - og den er grim. Eval kan bruges til hvad som helst, hvoraf det meste er grimt og intet er nødvendigt. PHP er generelt et beskidt sprog :'(
fangel>>
extract har jeg kun brugt én gang (!!!) og det er faktiskt et kraftfyldt stykke værktøj som selvfølgeligt skal bruges med ekstrem omtanke således også med ${'somename'}
Så jeg er reet sikker på vi taler samme sprog...
andersj >>
Du har fået løst dit problem... men jeg vil i den grad opfordre dig som de andre til at finde en alternativ tilgang til løsning af problematikken :-)
Jeg bygde opp et array slik:
$personer = array();
for ($i=1; $i<=$ant; $i++) {
$person = array();
$person['lastname'] = ${'lastname_'.$i};
$person['firstname'] = ${'firstname_'.$i};
$person['organisation'] = ${'organisation_'.$i};
$person['phone'] = ${'phone_'.$i};
$person['email'] = ${'email_'.$i};
$personer[] = $person;
}
Dermed kan jeg sende all informasjonen enkelt til en annen funksjon og plukke frem det jeg trenger der.
Takk for alle svar. :D