I'm building a templating system and I'm running in to an issue with calling functions on the fly.
When I try the following:
$args = array(
4,
'test' => 'hello',
'hi'
);
You know.. some numerical elements some associative elements,
call_user_func_array($function, $args);
converts the array to something like this:
$args = array(
4,
'hello',
'hi'
);
Is there any way around this other than passing an array like this:
$args = array(
4,
array('test' => 'hello'),
'hi'
);
Thanks! Matt
There's nowhere for the array keys to go because:
call_user_func_array($function, $args);
is equivalent to this:
$function(4, 'hello', 'hi');
You could use call_user_func()
instead:
call_user_func($function, $args);
then given a function with one argument, you can get the associative array:
function func($args) {
// $args is complete associative array
}
Note that call_user_func()
can also take more than one argument - each will be passed to the called function as an argument.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With