ID: 11962 Updated by: derick Reported By: [EMAIL PROTECTED] Old Summary: eval() doesn't handle multi-dimentional arrays. Status: Bogus Bug Type: Scripting Engine problem Operating System: RedHat 6.2 PHP Version: 4.0.6 New Comment: Because the parser ain't smart enough, try echo $GLOBALS['page']['id']; or echo "{$GLOBALS['page']['id']}"; (the first one is faster). Derick Previous Comments: ------------------------------------------------------------------------ [2001-07-09 07:08:59] [EMAIL PROTECTED] Your string equals 'echo "$GLOBALS[page][title]";', and RTFM why that doesn't work. ------------------------------------------------------------------------ [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 "<br>\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 <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]