Manuel PHP
call_user_func
(PHP 4, PHP 5)
call_user_func — Appelle une fonction utilisateur
Description
Appelle une fonction utilisateur fournie par le paramètre function .
Liste de paramètres
- function
-
La fonction à appeler. Les méthodes de classes peuvent être appelées statiquement en passant array($classname, $methodname) à ce paramètre.
- parameter
-
0 ou plus de paramètres à passer à la fonction.
Note: Notez que les paramètres pour call_user_func() ne sont pas passés par référence.
- <?php
- function increment(&$var)
- {
- $var++;
- }
- $a = 0;
- call_user_func('increment', $a);
- echo $a; // 0
- call_user_func_array('increment', array(&$a)); // Vous pouvez utiliser ceci à la place
- echo $a; // 1
- ?>
Valeurs de retour
Retourne le résultat de la fonction, ou FALSE si une erreur survient.
Exemples
Exemple #1 Exemple avec call_user_func()
- <?php
- function barber($type)
- {
- echo "Vous voulez une coupe$type, aucun problème";
- }
- call_user_func('barber', "mushroom");
- call_user_func('barber', "shave");
- ?>
Exemple #2 Exemple avec call_user_func() en utilisant un espace de noms
- <?php
- namespace Foobar;
- class Foo {
- static public function test() {
- print "Hello world!\n";
- }
- }
- call_user_func(__NAMESPACE__ .'::Foo::test'); // Depuis PHP 5.3.0
- // Hello world!
- call_user_func(array(__NAMESPACE__ .'::Foo', 'test')); // Depuis PHP 5.3.0
- // Hello world!
- ?>
Exemple #3 Utilisation d'une méthode de classe
- <?php
- class myclass {
- static function say_hello()
- {
- echo "Hello!\n";
- }
- }
- $classname = "myclass";
- call_user_func(array($classname, 'say_hello'));
- call_user_func($classname .'::say_hello'); // Depuis 5.2.3
- ?>
Exemple #4 Utilisation d'une fonction lambda
- <?php
- call_user_func(function($arg) { print "[$arg]\n"; }, 'test'); /* Depuis PHP 5.3.0 */
- // [test]
- ?>
Remonter 
