Citat:
Ursprungligen postat av youheardit
Tjenixen!
Har en liten fråga jag suttit och funderat på under de tider jag programmerat lite PHP.
Kan man skapa variabler från en array? Säg att jag har en fil som hämtar ca info från 10st $_GET requests.
Ex:
PHP-kod:
$gets = array("name","address","city","zip","region");
foreach($gets as $newvar){
${$newvar} = $_GET["'".$newvar."'"];
}
echo $name; //ekar ut det som fanns i $_GET['name']; ex: Philip
echo $address;
osv osv osv.....
Jag har testat något liknande förr, men fick en massa error och gav upp direkt eftersom jag inte kunde tolka felen.
EDIT: Körde koden som jag skrev i exemplet, men ingenting skrevs ut. Och när jag satte igång E_NOTICE så fick jag:
för varje variabel...
EDIT 2: Tog bort citattecknen i $_GET så det istället blev $_GET[$newvar], det fungerade, men hur gör jag med siffror? för det kommer ju inte funka...
tacksam för svar!
Med vänliga hälsningar, Philip Andersson!
|
Felet beror på att du försöker anropa ett arrayvärde som inte finns.
du måste alltid kolla om värdet är satt när du loopar igenom en array,
det kan du göra med t.ex strlen() eller empty().
t.ex nått sånthär:
PHP-kod:
$data = array("test1","test2");
foreach($data as $d) {
if(!empty($_GET[$d])) {
// Gör nått här
}
}
Att skapa nya PHP-variabler utifrån GET eller POST är inte att rekommendera,
Sedan är jag inte riktigt med på varför du vill skapa nya variabler, värdet finns ju redan i $_GET[]