2012-01-29 3 views
0

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

func1('hey', 'hey2', 'hey3'); 

, а затем запустить func2 с теми же аргументами:

func2('hey', 'hey2', 'hey3'); 

Я попытался это:

$arguments = func_get_args(); 
call_user_func_array(array($this, "func2"), $arguments); 

но похоже, что он работает неправильно? Есть идеи?

Оказалось, код должен быть: $ arguments = func_get_args(); call_user_func_array (массив ($ this, "func2"), $ arguments [0]);

Woops :) Спасибо всем

+1

Вы, функций или методов? Если func1 и func2 не являются методами $ this, вы должны заменить массив только именем функции. – Jens

+0

Я использую методы. Извините, я забыл упомянуть об этом. Таким образом, $ x-> func1() пришлось бы называть $ x-> func2() – andy

+0

. Вы можете уточнить, что «похоже, не работает». Что происходит? – mario

ответ

1

Вы можете сделать это просто так:

$func1 = func1('hey', 'hey2', 'hey3'); 

func1($hey, $hey2, $hey3){ 

    //func1 stuff here 

    $func2 = func2($hey, $hey2, $hey3); 

} 

func2($hey, $hey2, $hey3){ 

    //func2 stuff here 

} 

Надеется, что это помогает :)

0

Другим способу передать аргументы в массиве , например:

function func1(array $arguments) { 
    list($hey, $hey2, $hey3, $hey4) = $arguments; 
    func2($arguments); 
} 

function func2($arguments) { 
    print_r($arguments); 
} 

$arguments = array('hey', 'hey2', 'hey3'); 

func2($arguments); 
Смежные вопросы