Det är ju ett typexempel på när en array egentligen ska användas, så jag förstår inte varför du behöver dom som variabler. Men, men.
Använd extract():
$myArray = array('one' => 'ett', 'two' => 'två');
extract($myArray);
echo $one;
echo $two;
3 svar · 339 visningar · startad av learn
Ett klurig problem jag hoppas någon kan hjälpa mig med :)
Jag har en array med ett antal värden (antalet värden vet jag inte i förhand).
Exempel:
$min_array = array('one' => 'ett', 'two' => 'två');
Nu vill jag skicka in dessa värden som variabler i en funktion (som jag inte vet namnet på i förhand).
Exempel:
$functionName = 'min_funktion';
echo $functionName($one, $two);
function min_funktion($one, $two)
{
return "Jag kan räkna $one, $two...";
}
Ovanstående skall alltså skriva ut:
Jag kan räkna ett, två...
Det jag behöver göra är alltså:
1. Konvertera array-värdena till variabler
2. Skicka in dem i funktioner
(Observera att jag inte vet hur många värden/variabler det blir...)
Hur gör jag detta?
Tack på förhand! :bire
Det är ju ett typexempel på när en array egentligen ska användas, så jag förstår inte varför du behöver dom som variabler. Men, men.
Använd extract():
$myArray = array('one' => 'ett', 'two' => 'två');
extract($myArray);
echo $one;
echo $two;
Tack, skön funktion! Anledningen är att behöver göra på det sättet är att funktionerna i fråga även används på "vanligt" sätt när jag vet vad som ska skickas in i dem.
Bra, nu har jag värdena som variabler. Hur skickar jag med dem som argument till min funktion? Lite klurigt eftersom jag inte vet hur många dem är...
Det här funkar ju inte... ;)
$functionName(foreach($vars as $var) { $var })
{
//...
}
Tips?
Titta på call_user_func() och func_get_args(). Men det finns inget vettigare än att helt enkelt skicka in arrayen som parameter (och sedan möjligtvis använda extract där). Men du kommer alltid ha problemet att du inte vet hur många eller vilka variabler som existerar - så antingen har du något generalknas i din systemdesign eller så är du ute på mycket djupt vatten...