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