summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2019-09-09 16:57:23 +0200
committerChristoph M. Becker <cmbecker69@gmx.de>2019-09-09 19:05:23 +0200
commitbcf9d1e9953aec84c25ae3da1d6f775cbc52e0bd (patch)
treee7d6ddc9734bbc115d65ae5e9260b9c16183a558
parent51fd8bd3eed46c7908937162eb8f245eeb9c6071 (diff)
downloadphp-git-bcf9d1e9953aec84c25ae3da1d6f775cbc52e0bd.tar.gz
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>
-rw-r--r--Zend/tests/varSyntax/newVariable.phpt1
-rw-r--r--Zend/zend_language_parser.y2
2 files changed, 2 insertions, 1 deletions
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