Hi, 2012/4/18 Stefan Neufeind <neufe...@php.net>: > On 04/18/2012 12:02 AM, Stefan Neufeind wrote: >> Hi, >> >> the topic of variable argument-lists for functions in connection with >> getting the parameters by reference came up. This is currently not >> possible with func_get_args(), though a "hack" with debug_backtrace() is >> possible. >> >> How would you think about extending func_get_args() and func_get_arg() >> to allow for: >> >> $args = func_get_args(FUNC_GET_ARGS_BY_REFERENCE); >> $arg0 = func_get_arg (0, FUNC_GET_ARGS_BY_REFERENCE); >> >> (default would be FUNC_GET_ARGS_BY_COPY) >> >> >> Currently only the following "hack" works: >> >> function calc() >> { >> $d = debug_backtrace(); >> $args = $d[0]['args']; >> $args[0] *= 2; >> $args[1] *= 2; >> } >> >> $a = 5; >> $b = 7; >> var_dump ($a, $b); >> calc(&$a, &$b); >> var_dump ($a, $b); > > Hmm, that example also only works because of the call-time > pass-by-reference? *sigh* > Sorry, I forgot those ampersands in the call to calc(). Doesn't work > without. > > I hope the idea is clear though. Any chance we might make this possible > through func_get_args()?
I don't know what you would like to do, but function calc(&$args = NULL) { var_dump(count($args)); // num of args $args[1] *= 2; } calc(array(1,2,3,4)); would work. Regards, -- Yasuo Ohgaki -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php