Передача массива в функцию - PullRequest
1 голос
/ 04 марта 2011
function a($function, $array)
{
    global $test

    $test->$function(implode(',' $array));
}

Например, я хочу иметь возможность передавать различные аргументы второй функции внутри.

Так что, если бы я передал a('x', array('a', 'b')), он бы выполнил $test->x('a', 'b');

Очевидно, что взрыв не работает из-за того, что он представляет собой строку, не передает аргументы и не знает, как это сделать.

Ответы [ 2 ]

5 голосов
/ 04 марта 2011

Вы можете использовать call_user_func_array () .

call_user_func_array(array($test, $function), $array);
0 голосов
/ 04 марта 2011
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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...