[PHP-DEV] RE: Bug #11962 Updated: eval() doesn't handle multi-dimentional arrays.

2001-07-09 Thread Karl Austin

Hi,

My apologies to you, I have found how to make string substitution of
multi-dimnetional arrays work - however, it was not until I downloaded a
copy of the manual with user contributed errata that I found how to make it
work, something like this really should be included in the actual manual and
not just in the errata.

Thank you,

Karl Austin


-- 
PHP Development Mailing List 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] RE: Bug #11962 Updated: eval() doesn't handle multi-dimentional arrays.

2001-07-09 Thread Karl Austin

OK, so how come it works with 1 dimensional arrays? Surely it would make
sense to make it work with multi-dimensional arrays or not with arrays full
stop?

Karl Austin

-Original Message-
From: Bug Database [mailto:[EMAIL PROTECTED]]
Sent: 09 July 2001 12:09
To: [EMAIL PROTECTED]
Subject: Bug #11962 Updated: eval() doesn't handle multi-dimentional
arrays.


ID: 11962
Updated by: jeroen
Reported By: [EMAIL PROTECTED]
Old Summary: eval() doesn't handle multi-dimentional arrays.
Old Status: Open
Status: Bogus
Bug Type: Scripting Engine problem
Operating System: RedHat 6.2
PHP Version: 4.0.6
New Comment:

Your string equals'echo "$GLOBALS[page][title]";', and RTFM why that
doesn't work.

Previous Comments:


[2001-07-08 20:00:57] [EMAIL PROTECTED]

It appears that eval() does not handle mutli-dimentional arrays properly
e.g.  $page[title] = 'Page'; $test = '$page[title]';  If I do:  eval( 'echo
"'.$test.'";' );  I get:  Page  as the output, however if I change $test to:
$test = '$GLOBALS[page][title]';  then do:  eval( 'echo "'.$test.'";' );  I
get:  Array[title]  as my output.  My best guess for the reason this is
happening is that when eval() does a lookup for a variable in the symbol
table it is going from top to bottom and stops on the first match, no matter
how complete - From this I am assuming that the symbol table would be built
as follows:  $GLOBALS $GLOBALS[page] $GLOBALS[page][title]  so if eval()
searched from the top then it would find a partial match against
$GLOBALS[page] which is what I think it is doing.  A better example:
$page[title] = 'Hello';  $string = '$page[title]'; eval( 'echo
"'.$string.'";' );  echo "\n";  $string =
'$GLOBALS[page][title]'; eval( 'echo "'.$string.'";' );   I hope I make
sense to you, if not then please let me know and I will try and be clearer.





ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at
http://bugs.php.net/?id=11962&edit=1




-- 
PHP Development Mailing List 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]