Jag vill deklarera variablder i en for loop. Istället för att skriva:
$checkbox1 = $_SESSION["checkbox1"]
$checkbox2 = $_SESSION["checkbox2"]
osv...
Så vill jag skapa variablerna med hjälp av en foor loop. Det borde ju gå på något sätt?
Vad är felet i min kod nedan?
<?php
for($g=1; $g>=$i-1; $g++){
/*In the row that follows I want to create variables:
$checkbox1,$checkbox2,$checkbox3..and so on. What wrong?*/
$checkbox.$g = $_SESSION["checkbox".$g];
}
?>
Syntax problem (borde va lätt att lösa)
12 svar · 307 visningar · startad av Prime_66
Jag tror att du ska ta en titt på http://se.php.net/manual/en/language.variables.variable.php
$checkbox{$g} = $_SESSION["checkbox$g"];
har kollat på det. men blir inte klokare. det som du skrev är inte heller korrekt. :(
eval("$checkbox" . $g . "= $_SESSION['checkbox" . $g . "']");
Rasmus Lerdorf, BDFL of PHP skrev:
If eval() is the answer, you're almost certainly asking the
wrong question.
;)
Annars är det här en variant:
foreach ($_SESSION as $key => $val) {
if (substr($key, 0, 8) == 'checkbox') {
$$key = $val;
}
}
Det skulle i och för sig också gå med:
extract($_SESSION);
men av någon anledning känns det inte särskilt bra att köra extract på sessionsarrayen.
Matte: Så om använder det sätt som du föreslå kan jag alltså skriva: echo $key3; eller echo $key5; och få ett värde på det? Jag menar. Har de variablerna skapats då? För ju det som var tanken.
Gislaved.net skrev:
Rasmus Lerdorf, BDFL of PHP skrev:
If eval() is the answer, you're almost certainly asking the
wrong question.;)
Håller faktiskt med dig :D
Nej, du använder echo $checkbox1; .
Exempel:
$_SESSION['checkbox1'] = 'hej';
$_SESSION['checkbox2'] = 'hopp';
foreach ($_SESSION as $key => $val) {
if (substr($key, 0, 8) == 'checkbox') {
$$key = $val;
}
}
echo "$checkbox1 $checkbox2";
Tack matte. du löste mitt problem. har ett annat som du säkert också kan hjälpa till med. också ett syntax problem som stör mig nått oerhört att jag inte kommer på hur jag ska skriva.
om jag skriver:
echo $variable1:
Skrivs ju den ut.
Om jag vill göra samma sak fast 1:an istället är en variabel med värdet 1. Hur gör jag då?
echo $variable+$i;?
Fast det är ju fel, då parsern tror att den ska lägga ihop variablen som heter $variable med variabeln $i. Jag vill att den ska fatta att det är variablen $variable1 som den ska ta. Inget annat!
Ahh..nice. Nu funkar allt som det ska. Du är en klippa! :birp
markera denna tråden som löst? :)