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 ?