Функция call_user_func_array

Функцията call_user_func_array позволява извикване на callback, като предава параметрите под формата на масив. Първият параметър е името на функцията или метода, а вторият - масив от аргументи.

Синтаксис

phpcall_user_func_array(callable $callback, array $args);

Пример

Извикване на проста функция с предаване на параметри чрез масив:

php<?php
  function sum($a, $b) {
    return $a + $b;
  }
  
  $res = call_user_func_array('sum', [2, 3]);
  echo $res;
?>

Резултат от изпълнението на кода:

php5

Пример

Извикване на метод от клас с предаване на параметри:

php<?php
  class Calculator {
    public function multiply($a, $b) {
      return $a * $b;
    }
  }
  
  $calc = new Calculator();
  $res = call_user_func_array([$calc, 'multiply'], [4, 5]);
  echo $res;
?>

Резултат от изпълнението на кода:

php20

Пример

Използване с анонимна функция:

php<?php
  $func = function($a, $b, $c) {
    return $a + $b + $c;
  };
  
  $res = call_user_func_array($func, [1, 2, 3]);
  echo $res;
?>

Резултат от изпълнението на кода:

php6

Вижте също

  • функцията call_user_func,
    която извиква callback-функция с отделни аргументи
  • функцията function_exists,
    която проверява съществуването на функция