Re: Suggestion: echo function(var)[0];

From: 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>:
Would 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)
--Mathieu Suen

« previous php.internals (#48646) next »