Вызов функции с передачей аргументов

# ReflectionFunction::invokeArgs

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionFunction::invokeArgs — Вызов функции с передачей аргументов

### Описание

public function ReflectionFunction::invokeArgs(array `$args`): mixed

Вызывает функцию и передаёт ей аргументы в виде массива.

### Список параметров

`args`

  Передаваемые функции аргументы в виде массива. Поведение функции аналогично call_user_func_array().

### Возвращаемые значения

Возвращает результат выполнения вызванной функции.

### Список изменений

Версия | Описание
--- | ---
8.0.0 | Ключи `args` теперь интерпретируются как имена параметров, а не игнорируются.

### Примеры

Пример #1 Пример использования ReflectionFunction::invokeArgs()

    <?php
    function title($title, $name)
    {
        return sprintf("%s. %s\r\n", $title, $name);
    }

    $function = new ReflectionFunction('title');

    echo $function->invokeArgs(array('Dr', 'Phil'));
    ?>

Результат выполнения приведённого примера:

    Dr. Phil

Пример #2 Пример использования ReflectionFunction::invokeArgs() со ссылками на аргументы

    <?php
    function get_false_conditions(array $conditions, array &$false_conditions)
    {
        foreach ($conditions as $condition) {
            if (!$condition) {
                $false_conditions[] = $condition;
            }
        }
    }

    $function_ref     = new ReflectionFunction('get_false_conditions');

    $conditions       = array(true, false, -1, 0, 1);
    $false_conditions = array();

    $function_ref->invokeArgs(array($conditions, &$false_conditions));

    var_dump($false_conditions);
    ?>

Результат выполнения приведённого примера:

    array(2) {
      [0]=>
      bool(false)
      [1]=>
      int(0)
    }

### Примечания

> Замечание:

> Аргументы в списке, который передают в метод, должны быть ссылками, если у функции есть параметры, которые принимают аргументы по ссыкле.

### Смотрите также

- ReflectionFunction::invoke() - Вызывает функцию
- ReflectionFunctionAbstract::getNumberOfParameters() - Получает количество параметров
- __invoke()
- call_user_func_array() - Вызывает callback-функцию с массивом параметров

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open