Fonctions sur la gestion des fonctions
call_user_func
Fonctions sur la gestion des fonctions
PHP Manual

# call_user_func_array

(PHP 4 >= 4.0.4, PHP 5)

call_user_func_array — Appelle une fonction utilisateur avec les paramètres rassemblés en tableau

### Description

mixed call_user_func_array ( callback `$function` , array `$param_arr` )

Appelle la fonction utilisateur `function` avec les paramètres `param_arr` , rassemblés dans un tableau.

### Liste de paramètres

`function`

  La fonction à appeler.

`param_arr`

  Les paramètres à passer à la fonction, sous la forme d'un tableau indexé.

### Valeurs de retour

Retourne le résultat de la fonction, ou `FALSE` si une erreur survient.

### Exemples

Exemple #1 Exemple avec 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 = new StdClass();
$host = $_SERVER["PHP_SELF"];
call_user_func_array('debug', array("host", $host));
call_user_func_array('debug', array("c", $c));
call_user_func_array('debug', array("_POST", $_POST));
?>`

L'exemple ci-dessus va afficher quelque chose de similaire à :

    ***DEBUGGING
    VARIABLE: host
    VALUE:
    -
    ***
    ***DEBUGGING
    VARIABLE: c
    VALUE:stdClass Object
    (
    )
    ***
    ***DEBUGGING
    VARIABLE: _POST
    VALUE:Array
    (
    )
    ***

Exemple #2 Exemple avec call_user_func_array() en utilisant un espace de nom

`<?php
namespace Foobar;
class Foo {
static public function test($name) {
print "Bonjour {$name}!\n";
}
}
// Depuis PHP 5.3.0
call_user_func_array(__NAMESPACE__ .'\Foo::test', array('Hannes'));
// Depuis PHP 5.3.0
call_user_func_array(array(__NAMESPACE__ .'\Foo', 'test'), array('Philip'));
?>`

L'exemple ci-dessus va afficher :

    Bonjour Hannes!
    Bonjour Philip!

Exemple #3 Utilisation d'une fonction lambda

`<?php
$func = function($arg1, $arg2) {
return $arg1 * $arg2;
};
var_dump(call_user_func_array($func, array(2, 4))); /* Depuis PHP 5.3.0 */
?>`

L'exemple ci-dessus va afficher :

    int(8)

### Notes

> Note: Les variables référencées dans le paramètre `param_arr` sont passées à la fonction par référence, les autres sont passées par leur valeur. En d'autres termes, cela ne dépend pas de la signature de la fonction suivant que le paramètre est passé par valeur ou par référence.

### Voir aussi

- call_user_func() - Appelle une fonction utilisateur
- Informations sur le type callback

Fonctions sur la gestion des fonctions
call_user_func
Fonctions sur la gestion des fonctions
PHP Manual