Якщо у вас є аргументи в масиві, вас може зацікавити call_user_func_array
функція.
Якщо кількість аргументів, які ви хочете передати, залежить від довжини масиву, це, ймовірно, означає, що ви можете самі їх упакувати в масив - і використовувати його для другого параметра call_user_func_array
.
Елементи цього масиву, який ви передаєте, будуть отримані вашою функцією як окремі параметри.
Наприклад, якщо у вас є ця функція:
function test() {
var_dump(func_num_args());
var_dump(func_get_args());
}
Ви можете запакувати свої параметри в масив, наприклад:
$params = array(
10,
'glop',
'test',
);
А потім викличте функцію:
call_user_func_array('test', $params);
Цей код буде результатом:
int 3
array
0 => int 10
1 => string 'glop' (length=4)
2 => string 'test' (length=4)
тобто 3 параметри; точно так само, якщо функцію називали так:
test(10, 'glop', 'test');