From 470fe972f55e1dde6f13f091287f722f61aed3ac Mon Sep 17 00:00:00 2001 From: Zeev Suraski Date: Sat, 15 Jan 2000 17:17:32 +0000 Subject: [PATCH] Added support for $foo->{$bar}["foobar"] notation (was supported in PHP 3) --- Zend/zend-parser.y | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Zend/zend-parser.y b/Zend/zend-parser.y index 3c74e9bd94..93938dc39c 100644 --- a/Zend/zend-parser.y +++ b/Zend/zend-parser.y @@ -595,15 +595,20 @@ object_property: ; scalar_object_property: - T_STRING { $$ = $1; } - | '{' expr '}' { $$ = $2; } + variable_name { $$ = $1; } | cvar_without_objects { do_end_variable_parse(BP_VAR_R, 0 CLS_CC); $$ = $1; } ; object_dim_list: object_dim_list '[' dim_offset ']' { fetch_array_dim(&$$, &$1, &$3 CLS_CC); } - | T_STRING { znode tmp_znode, res; do_pop_object(&tmp_znode CLS_CC); do_fetch_property(&res, &tmp_znode, &$1 CLS_CC); $1 = res; } '[' dim_offset ']' { fetch_array_dim(&$$, &$1, &$4 CLS_CC); } + | variable_name { znode tmp_znode, res; do_pop_object(&tmp_znode CLS_CC); do_fetch_property(&res, &tmp_znode, &$1 CLS_CC); $1 = res; } '[' dim_offset ']' { fetch_array_dim(&$$, &$1, &$4 CLS_CC); } +; + + +variable_name: + T_STRING { $$ = $1; } + | '{' expr '}' { $$ = $2; } ; -- 2.50.1