From bcf9d1e9953aec84c25ae3da1d6f775cbc52e0bd Mon Sep 17 00:00:00 2001 From: "Christoph M. Becker" <cmbecker69@gmx.de> Date: Mon, 9 Sep 2019 16:57:23 +0200 Subject: [PATCH] new_variable '{' expr '}' is deprecated as well Curly brace syntax for accessing array elements and string offsets is deprecated [1]; this should also be the case for respective `new` expressions. This issue has been reported by brzuchal@php.net. [1] <https://wiki.php.net/rfc/deprecate_curly_braces_array_access> --- Zend/tests/varSyntax/newVariable.phpt | 1 + Zend/zend_language_parser.y | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Zend/tests/varSyntax/newVariable.phpt b/Zend/tests/varSyntax/newVariable.phpt index 360f99ac36..5505ffc0f1 100644 --- a/Zend/tests/varSyntax/newVariable.phpt +++ b/Zend/tests/varSyntax/newVariable.phpt @@ -23,6 +23,7 @@ var_dump(new $weird[0]->foo::$className); ?> --EXPECTF-- +Deprecated: Array and string offset access syntax with curly braces is deprecated in %s on line %d object(stdClass)#%d (0) { } object(stdClass)#%d (0) { diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index c25d13ecf2..f3bb663e0c 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -1189,7 +1189,7 @@ new_variable: | new_variable '[' optional_expr ']' { $$ = zend_ast_create(ZEND_AST_DIM, $1, $3); } | new_variable '{' expr '}' - { $$ = zend_ast_create(ZEND_AST_DIM, $1, $3); } + { $$ = zend_ast_create_ex(ZEND_AST_DIM, ZEND_DIM_ALTERNATIVE_SYNTAX, $1, $3); } | new_variable T_OBJECT_OPERATOR property_name { $$ = zend_ast_create(ZEND_AST_PROP, $1, $3); } | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable -- 2.40.0