From: Nikita Popov Date: Mon, 6 Jan 2020 15:22:17 +0000 (+0100) Subject: Allow arbitrary expressions in new/instanceof using () syntax X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c141ee3f9c31276264dba886a880e6160b8cb4ea;p=php Allow arbitrary expressions in new/instanceof using () syntax --- diff --git a/Zend/tests/varSyntax/new_instanceof_expr.phpt b/Zend/tests/varSyntax/new_instanceof_expr.phpt new file mode 100644 index 0000000000..475f7a9dae --- /dev/null +++ b/Zend/tests/varSyntax/new_instanceof_expr.phpt @@ -0,0 +1,18 @@ +--TEST-- +new with an arbitrary expression +--FILE-- + +--EXPECT-- +object(stdClass)#1 (0) { +} +object(stdClass)#1 (0) { +} +bool(true) diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index af8b67af5c..02dbd091dc 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -1078,6 +1078,7 @@ class_name: class_name_reference: class_name { $$ = $1; } | new_variable { $$ = $1; } + | '(' expr ')' { $$ = $2; } ; exit_expr: