(PHP 4 >= 4.0.4, PHP 5)
call_user_func_array — Chama uma dada função de usuário com um array de parâmetros
Chama uma function
definida pelo usuário com
os parâmetros param_arr
.
function
A função a ser chamada.
param_arr
Os parâmetros para ser passado para a função, com array indexado.
Retorna o resultado da função, ou FALSE
em error.
Exemplo #1 Exemplo da call_user_func_array()
<?php
function debug($var, $val)
{
echo "***DEBUGGING\nVARIABLE: $var\nVALUE:";
if (is_array($val) || is_object($val) || is_resource($val)) {
print_r($val);
} else {
echo "\n$val\n";
}
echo "***\n";
}
$c = mysql_connect();
$host = $_SERVER["SERVER_NAME"];
call_user_func_array ('debug', array("host", $host));
call_user_func_array ('debug', array("c", $c));
call_user_func_array ('debug', array("_POST", $_POST));
?>
Exemplo #2 Usando call_user_func_array() com nome do namespace
<?php
namespace Foobar;
class Foo {
static public function test($name) {
print "Hello {$name}!\n";
}
}
// A partir do PHP 5.3.0
call_user_func_array(__NAMESPACE__ .'::Foo::test', array('Hannes'));
// Hello Hannes!
// A partir do PHP 5.3.0
call_user_func_array(array(__NAMESPACE__ .'::Foo', 'test'), array('Philip'));
// Hello Philip!
?>
Nota:
Variáveis referenciadas em
param_arr
são passadas para a função por referência, outras são passadas por valor. Em outras palavras, ele não depende da assinatura da função se o parâmetro é passado por valor ou por referência.