Manuel PHP
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
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 = 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));
- ?>
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 "Hello{$name}!\n";
- }
- }
- // Depuis PHP 5.3.0
- call_user_func_array(__NAMESPACE__ .'::Foo::test', array('Hannes'));
- // Hello Hannes!
- // Depuis PHP 5.3.0
- call_user_func_array(array(__NAMESPACE__ .'::Foo', 'test'), array('Philip'));
- // Hello 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 */
- // 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.
Remonter 
