On Sat, Apr 28, 2012 at 3:15 PM, Nikita Popov <nikita....@googlemail.com>wrote:

> On Sat, Apr 28, 2012 at 11:49 PM, Yader Hernandez
> <yader.hernan...@gmail.com> wrote:
> > I had a look at
> >
> http://lxr.php.net/opengrok/xref/PHP_5_4/ext/standard/basic_functions.c#4714
> > and
> > I don't understand how it's passing the arguments into the closure given
> by
> > the user.
> >
> > I can successfully call the closure given, but passing arguments into the
> > closure is something I'm not clear on.
> >
> > Can someone please shed some light?
>
> Look at the zend_parse_parameters call. It fetches the params into
> fci.params and their number into fci.param_count.
>
> zend_fcall_info.params is defined as zval***, so it's basically an
> array of zval**. So you simply have to create one with your arguments
> :)
>
> Hope that helps,
> Nikita
>

Ah! Great it works now. Thanks!

I'm assuming that return_value in this case is being used as whatever the
closure returned  ?

ie. function ($element) { return false; }

then that means I can do Z_LVAL_P(return_value) /* 0 */, correct ?

Reply via email to