I have a variable length array that I need to transpose into a list of parameters for a function.
I hope there is a neat way of doing this - but I cannot see how.
<You could use eval
:
eval("$func_name(" . implode($params, ",") . ");");
Though you might need to do some lambda trickery to get your parameters quoted and/or escaped:
$quoted_escaped_params = array_map(create_function('$a', 'return "\"". str_replace("\"",` "\\\"", $a) . "\""'), $params);
Yes, use call_user_func_array():
call_user_func_array('function_name', $parameters_array);
You can use this to call methods in a class too:
class A {
public function doStuff($a, $b) {
echo "[$a,$b]\n";
}
}
$a = new A;
call_user_func_array(array($a, 'doStuff'), array(23, 34));