Re: Suggestion: echo function(var)[0];
| From: | mathieu.suen | Date: | Fri, 04 Jun 2010 07:18:14 +0000 |
| Subject: | Re: Suggestion: echo function(var)[0]; | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-48646@lists.php.net to get a copy of this message | ||
Hi
Why not something more generic.
Someone could think of a ValueNode.
Then it could be use for object, array, any primitive type ...
I will take the ValueNode as a non terminal grammar node.
So first we could do that:
ValueNode->method();
ValueNode::sMethod();
ValueNode[];
foo(ValueNode);
echo ValueNode;
$e = ValueNode;
...
And a ValueNode could be define as:
ValueNode :
NewStatement
| FunctionCall
| PrimitiveValue
| '(' ValueNode ')'
| ...;
This would allow all this syntax:
(new A())->foo();
foo(new A());
foo->bar()[1];
foo()[5];
and many others.
On 06/04/2010 03:19 AM, Kalle Sommer Nielsen wrote:
Hi Tig 2010/6/4 Tig<tigger.on@gmail.com>:--Mathieu SuenWould be at all possible to implement this kind of shortcut?Its called array-dereferencing and it was proposed countless times, including by myself. There is an RFC for this[1] and it was planned on the old PHP6 todo at the PDT[2]. [1] http://wiki.php.net/rfc/functionarraydereferencing [2] http://wiki.php.net/summits/pdmnotesmay09#php_6 (see point #13)