I don't understand what is holding PHP back from having this syntax. Tig said: <? $tmp = getimagesize('./path/to/image'); echo $tmp[1]; ?>
The need to assign the trivial variable $tmp first is completely arbitrary. Is it not a design goal somewhere that languages should allow the greatest degree of literal expression possible, consistent with existing syntax & semantics rules? I am new here but would be interested in helping with a patch (+ hopefully another RFC) for this. What exactly are the specific arguments against array dereferencing? - Harrison On Fri, Jun 4, 2010 at 4:19 PM, mathieu.suen <mathieu.s...@easyflirt.com>wrote: > On 06/04/2010 10:00 AM, Richard Quadling wrote: > >> On 4 June 2010 08:18, mathieu.suen<mathieu.s...@easyflirt.com> wrote: >> >> >>> 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...@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 >>> >>> >>> >>> >>> >>> >> Not an expert in this area, but does this mechanism limit you to using >> single dimensional arrays? >> >> >> > > Of course not as soon as you add array access to a ValueNode > > ValueNode > > .. > | ArrayAccess > ...; > > This is very simple and it can refactor greatly the parser. > > -- Mathieu Suen > > > >