Bekijk Volledige Versie : Re: PHP array?s en eval
Daniel Tryba
11/05/05, 02:15
Jan Smeelen <ivalid@invalid.invalid> wrote:
> echo $code;
>
> // output on screen : $Basket[row1]=1
>
> eval("\$code = \"$code\";");
> $Basket['row2']="test2";
> $Basket['row3']="test3";
> echo "<hr>";
> print_r($Basket);
>
> // geeft on het scherm : Array ( [row2] => test2 [row3] => test3 )
> // echter row1 zien niet in de array $Basket...
>
> Waar gaat het verkeerd
Waar denk jij dat in bovenstaande code 'row1' als key zou moeten worden
toegevoegd aan $basket?
> wat doe ik fout ? ;o)
Je probeerd eval te gebruiken, dan moet er al een belletje gaan
rinkelen dat je fout bezig bent.
Jan Smeelen
11/05/05, 02:25
"Daniel Tryba" <partmapsswen@invalid.tryba.nl> schreef in bericht
news:42814d5d$0$58844$c5fe704e@news6.xs4all.nl...
> Jan Smeelen <ivalid@invalid.invalid> wrote:
>> echo $code;
>>
>> // output on screen : $Basket[row1]=1
>>
>> eval("\$code = \"$code\";");
>> $Basket['row2']="test2";
>> $Basket['row3']="test3";
>> echo "<hr>";
>> print_r($Basket);
>>
>> // geeft on het scherm : Array ( [row2] => test2 [row3] => test3 )
>> // echter row1 zien niet in de array $Basket...
>>
> Je probeerd eval te gebruiken, dan moet er al een belletje gaan
> rinkelen dat je fout bezig bent.
Voorheen had ik hetvolgde :
$jan="Basket";
$k="row1";
$v="1";
$$jan[$k]=$v;
Maar ook dat werkte niet....
Mogelijk zie ik het even niet echt helder, zit té lang achter het schermpje
? ;-D
Groeten,
Jan.
Daniel Tryba
11/05/05, 02:45
Jan Smeelen <ivalid@invalid.invalid> wrote:
> Voorheen had ik hetvolgde :
Helaas ga je niet in op mijn vraag (die ik niet stel omdat ik het
antwoord niet weet maar om jou je code te laten uitleggen in de hoop dat
je meteen zelf ziet waar de fout zit) :(
> $jan="Basket";
> $k="row1";
> $v="1";
> $$jan[$k]=$v;
>
> Maar ook dat werkte niet....
Wat staat daar dan ook op de laatste regel?
> Mogelijk zie ik het even niet echt helder, zit t? lang achter het schermpje
> ? ;-D
Kwestie van de voorrangsregels even checken, kan je je besparen door
expliciet te schrijven wat je wilt bereiken.
Staat allemaal gewoon op de manual page van de "variable variables"
http://nl2.php.net/manual/en/language.variables.variable.php
" In order to use variable variables with arrays, you have to resolve an
ambiguity problem. That is, if you write $$a[1] then the parser needs to
know if you meant to use $a[1] as a variable, or if you wanted $$a as
the variable and then the [1] index from that variable. The syntax for
resolving this ambiguity is: ....."
Jan Smeelen
11/05/05, 02:55
"Daniel Tryba" <partmapsswen@invalid.tryba.nl> schreef in bericht
news:42815512$0$58834$c5fe704e@news6.xs4all.nl...
> Jan Smeelen <ivalid@invalid.invalid> wrote:
>> Voorheen had ik hetvolgde :
>
> Helaas ga je niet in op mijn vraag (die ik niet stel omdat ik het
> antwoord niet weet maar om jou je code te laten uitleggen in de hoop dat
> je meteen zelf ziet waar de fout zit) :(
>
>> $jan="Basket";
>> $k="row1";
>> $v="1";
>> $$jan[$k]=$v;
>
>> Mogelijk zie ik het even niet echt helder, zit t? lang achter het
>> schermpje
>> ? ;-D
>
> Kwestie van de voorrangsregels even checken, kan je je besparen door
> expliciet te schrijven wat je wilt bereiken.
>
> Staat allemaal gewoon op de manual page van de "variable variables"
> http://nl2.php.net/manual/en/language.variables.variable.php
> " In order to use variable variables with arrays, you have to resolve an
> ambiguity problem. That is, if you write $$a[1] then the parser needs to
> know if you meant to use $a[1] as a variable, or if you wanted $$a as
> the variable and then the [1] index from that variable. The syntax for
> resolving this ambiguity is: ....."
>
Hé perfect !
Zie je wél dat ik te lang achter het schermpje zit, nu je me erop wijst,
zie ik inderdaad dé fout ! :o)
Voor de andere lezers :
code moet dus zijn :
$jan="Basket";
$k="row1";
$v="1";
en dan :
${$jan}[$k]=$v;
i.p.v. $$jan[$k]=$v;
Bedankt Daniel, nu is het dus écht tijd om te gaan pitten voor mij ;-D
Groeten,
Jan.