function a($function, $array)
{
global $test
$test->$function(implode(',' $array));
}
例如,我希望能够将各种参数传递给第二个函数。将数组传递到函数
所以,如果我通过a('x', array('a', 'b'))
它会执行$test->x('a', 'b');
的爆显然不因使其成为一个字符串,而不是传递参数,不知道如何做到这一点的工作。
function a($function, $array)
{
global $test
$test->$function(implode(',' $array));
}
例如,我希望能够将各种参数传递给第二个函数。将数组传递到函数
所以,如果我通过a('x', array('a', 'b'))
它会执行$test->x('a', 'b');
的爆显然不因使其成为一个字符串,而不是传递参数,不知道如何做到这一点的工作。
你可以使用call_user_func_array()。
call_user_func_array(array($test, $function), $array);
function a($function, $array)
{
global $test
$test->{$function}($array[0], $array[1]);
}
或
function a($function, $arg1, $arg, $arg3...)
{
global $test
$arg = func_get_args();
unset($arg[0]); // because it is the $function arg
$test->{$function}($arg);
}
你的第二个替代方法将'a()'的多个参数作为数组传递给'$ function'。 OP想要做相反的事情。 – 2011-03-04 02:53:55
这样比较好。 – Joseadrian 2011-03-04 02:54:29