2009-09-22 6 views
2

В PHP есть способ отправить аргументы функции прямо к другой функции, не указывая их по очереди? Есть ли способ расширить func_get_arg(), чтобы другая функция получала отдельные аргументы, а не только один массив?Передача аргументов функции прямо к другой функции

Я хотел бы послать аргументы из foo() прямо bar() так:

function foo($arg1, $arg2, $arg3) 
{ 
    $args = expand_args(func_get_arg()); 
    bar($args); 
} 

ответ

5

да.

function foo($arg1, $arg2, $arg3) 
{ 
    $args = func_get_arg(); 

    call_user_func_array("bar",$args); 

} 
0

Если вы хотите вызвать его функции, принадлежащей к экземпляру совершенно отдельный класс, который может быть сделано путем прохождения первого ARG в call_user_func_array как массив.

В этом примере функция foo принимает любые аргументы и передает их непосредственно в и возвращает результат.

public function foo(/* example arguments */) 
{ 
    return call_user_func_array 
    (
     array($bar->baz, 'bob'), 
     func_get_args() 
    ); 
} 
Смежные вопросы