Função call_user_func_array

A função call_user_func_array permite chamar um callback, passando parâmetros na forma de um array. O primeiro parâmetro é o nome da função ou método, e o segundo - o array de argumentos.

Sintaxe

phpcall_user_func_array(callable $callback, array $args);

Exemplo

Chamando uma função simples passando parâmetros através de um array:

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

Resultado da execução do código:

php5

Exemplo

Chamando um método de classe com passagem de parâmetros:

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;
?>

Resultado da execução do código:

php20

Exemplo

Usando com uma função anônima:

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

Resultado da execução do código:

php6

Veja também

  • a função call_user_func,
    que chama uma função de callback com argumentos individuais
  • a função function_exists,
    que verifica a existência de uma função