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