Re: function call chaining
| From: | Pierre Joye | Date: | Tue, 19 Jan 2010 10:53:52 +0000 |
| Subject: | Re: function call chaining | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-46797@lists.php.net to get a copy of this message | ||
hi Stan,
On Tue, Jan 19, 2010 at 1:27 AM, Stanislav Malyshev <stas@zend.com> 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.
>
> 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?
I'm not a fan of this kind of syntaxic sugars, especially for
procedural implementation only. What are the benefits?
Cheers,
--
Pierre
@pierrejoye | http://blog.thepimp.net | http://www.libgd.org