From: [EMAIL PROTECTED] Operating system: RedHat 6.2 PHP version: 4.0.6 PHP Bug Type: Scripting Engine problem Bug description: eval() doesn't handle multi-dimentional arrays. 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. -- Edit bug report 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]