On 19.01.2010, at 3:27, Stanislav Malyshev wrote:

> Hi!
> 
> I wrote a small patch that enables this kind of syntax in PHP:
> 
> foo()();
> 
> What it means is that if foo() returns callable value (which probably should 
> be function name or closure) then it would be called. Parameters and more 
> than two sets of () work too.
> Of course, this is mostly useful for doing closures, and that was primary 
> drive for implementing it - to make working with closures and especially 
> function returning closures easier.
> What does not work currently is $foo->bar()() - since it is surprisingly hard 
> to tell parser it's not {$foo->bar}()() - which of course is not what I want 
> to do.

I like it!

regarding $foo->bar()()…
is it possible to use precedence rules here? something like:

    ($foo->bar())();


> What do you think? If somebody has better idea btw - maybe make something 
> like {foo()}() - and make that work for any expression inside {} - that might 
> work too. So, what do you think?

why curly braces?
Parentheses would feel more natural here.

Would be nice if something like this worked too:

    (new Class())->method();


--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to