@Soft_touch_plastic

Как передать в функцию параметры из массива?

Есть анонимная функция с неизвестным числом параметров, она передается в метод класса, вот так:
A::method(function($a, $b, $c) { //тут может быть сколько угодно параметров, это пишется самим пользователем
echo $a;
echo $b;
echo $c;
});

После выполнения всех проверок в методе я имею массив значений, который нужно передать, и саму эту функцию:
public static function method($action) {
//какие нибудь проверки
$action($arg); //к вызову этой функции все должно прийти

В массиве $arg лежат все необходимые значения с которыми нужно вызвать функцию, но как их все вытащить если неизвестно сколько их будет? Мне нужен универсальный сниппет, который вызовет функцию и с 1 и с 10 аргументами (в $arg всегда лежит нужное количество аргументов). Как такое можно сделать?
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
bigton
@bigton
Web-программист
function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}
echo sum(1, 2, 3, 4);


https://stackoverflow.com/questions/16823611/passi...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Как всегда, в заголовке одно, а в (голове) тексте вопроса - полностью противоположное.

Как передать в функцию параметры из массива: распаковка аргументов
Как получить параметры в виде массива: списки аргументов переменной длины
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы