PHP, как передать значения func-get-args другой функции в виде списка аргументов? - PullRequest
33 голосов
/ 24 января 2010

Я хочу создать функцию (my_function()), получающую неограниченное количество аргументов и передающую ее в другую функцию (call_another_function()).

function my_function() {    
   another_function($arg1, $arg2, $arg3 ... $argN);    
}

Итак, хотите позвонить my_function(1,2,3,4,5) и получить звонок another_function(1,2,3,4,5)

Я знаю, что должен использовать func_get_args(), чтобы получить все аргументы функции в виде массива, но я не знаю, как передать эти аргументы другой функции.

Спасибо.

Ответы [ 3 ]

50 голосов
/ 24 января 2010

Попробуйте call_user_func_array:

function my_function() {    
    $args = func_get_args();
    call_user_func_array("another_function", $args);
}

В программировании и информатике это называется функцией apply .

11 голосов
/ 24 января 2010

Использование call_user_func_array как

call_user_func_array('another_function', func_get_args());
1 голос
/ 24 января 2010

Это еще не задокументировано, но вы можете использовать отражение API, особенно invokeArgs.

(возможно, мне следовало использовать комментарий, а не полный пост)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...