Bug #68182 [Com]: array("foo", "bar")() is invalid syntax
| From: | cmbecker69 at gmx dot de | Date: | Wed, 08 Oct 2014 14:54:08 +0000 |
| Subject: | Bug #68182 [Com]: array("foo", "bar")() is invalid syntax | ||
| References: | 1 | Groups: | php.standards |
| Request: | Send a blank email to standards-+get-500@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=68182&edit=1
ID: 68182
Comment by: cmbecker69 at gmx dot de
Reported by: chx@php.net
Summary: array("foo", "bar")() is invalid syntax
Status: Not a bug
Type: Bug
Package: PHP Language Specification
PHP Version: Irrelevant
Block user comment: N
Private report: N
New Comment:
> According to the specs, any postfix expression + argument list
> is a valid function call.
No. While it is syntatically valid, there are further constraints:
| postfix-expression must designate a function, either by being
| its name, by being a value of type string (but not a string
| literal) that contains the function's name, or by being a variable
| whose type is Closure (§§) or a derived type thereof.
array("foo", "bar") doesn't fulfill these constraints.
Previous Comments:
------------------------------------------------------------------------
[2014-10-08 08:06:06] requinix@php.net
Actually it is valid syntax but you need the uniform variable syntax changes in PHP 7 to get it.
http://3v4l.org/TbcgJ
------------------------------------------------------------------------
[2014-10-08 07:47:11] chx@php.net
Description:
------------
According to the specs, https://github.com/php/php-langspec/blob/master/spec/10-expressions.md#function-call-operator
any postfix expression + argument list is a valid function call.
Looking at postfix expressions https://github.com/php/php-langspec/blob/master/spec/10-expressions.md#general-3
it says array-creation-expression is a postfix expression.
Test script:
---------------
array("foo", "bar")();
Expected result:
----------------
PHP Fatal error: Class 'foo' not found in Command line code on line 1
Actual result:
--------------
PHP Parse error: syntax error, unexpected '(' in Command line code on line 1
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=68182&edit=1