2012-05-18 2 views
1

Скажем, у меня есть функция с именем addUp, которая принимает любое количество десятичных аргументов и возвращает результат из всех добавленных вместе.Передача необязательного количества аргументов в другую функцию

Если у меня есть следующие функции:

function myTest(){ 
    $args = func_get_args(); 
    return addUp($args); 
} 

Если я позвоню myTest(1,2,3), очевидно, это не будет работать, как я только передавая один аргумент addUp и является массивом.

Есть ли способ передать все аргументы, переданные в myTest, в функцию addUp (без редактирования функции addUp)?

ответ

2

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

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

-1

Вы можете передать массив, а затем перебрать его.

$args = array(1, 2, 3, 4); 

function myTest($arr){ 
    $r = 0; 
    foreach($arr as $value){ 
     $r += intval($value); 
    } 

    return $r; 
} 

echo myTest($args); 
Смежные вопросы