Manuel PHP

call_user_func

(PHP 4, PHP 5)

call_user_funcAppelle une fonction utilisateur

Description

mixed call_user_func ( callback $function [, mixed $parameter [, mixed $... ]] )

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.

  1. <?php
  2. function increment(&$var)  
  3. { 
  4.    $var++;  
  5. }  
  6.  
  7. $a = 0;  
  8. call_user_func('increment', $a);  
  9. echo $a; // 0
  10.  
  11. call_user_func_array('increment', array(&$a)); // Vous pouvez utiliser ceci à la place
  12. echo $a; // 1
  13. ?> 

Valeurs de retour

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

Exemples

Exemple #1 Exemple avec call_user_func()

  1. <?php
  2. function barber($type)  
  3. { 
  4.    echo "Vous voulez une coupe$type, aucun problème";  
  5. }  
  6. call_user_func('barber', "mushroom");  
  7. call_user_func('barber', "shave");  
  8. ?> 

Exemple #2 Exemple avec call_user_func() en utilisant un espace de noms

  1. <?php
  2.  
  3. namespace Foobar;  
  4.  
  5. class Foo { 
  6.    static public function test() { 
  7.       print "Hello world!\n"; 
  8.    }  
  9. }  
  10.  
  11. call_user_func(__NAMESPACE__ .'::Foo::test'); // Depuis PHP 5.3.0
  12. // Hello world!
  13. call_user_func(array(__NAMESPACE__ .'::Foo', 'test')); // Depuis PHP 5.3.0
  14. // Hello world!
  15.  
  16. ?> 

Exemple #3 Utilisation d'une méthode de classe

  1. <?php
  2.  
  3. class myclass { 
  4.    static function say_hello() 
  5.    { 
  6.       echo "Hello!\n"; 
  7.    }  
  8. }  
  9.  
  10. $classname = "myclass";  
  11.  
  12. call_user_func(array($classname, 'say_hello'));  
  13. call_user_func($classname .'::say_hello'); // Depuis 5.2.3
  14.  
  15. ?> 

Exemple #4 Utilisation d'une fonction lambda

  1. <?php
  2.  
  3. call_user_func(function($arg) { print "[$arg]\n"; }, 'test'); /* Depuis PHP 5.3.0 */  
  4. // [test]
  5.  
  6. ?> 

Voir aussi


Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique