function call chaining
| From: | Stanislav Malyshev | Date: | Tue, 19 Jan 2010 00:27:51 +0000 |
| Subject: | function call chaining | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-46789@lists.php.net to get a copy of this message | ||
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.
The patch is here: http://random-bits-of.info/funcfunc.diff
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?
--
Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com