PHP supporte le concept de fonctions variables. Cela signifie
que si le nom d'une variable est suivi de parenthèses,
PHP recherchera une fonction de même nom,
et essaiera de l'exécuter. Cela peut servir, entre autres,
pour faire des fonctions callback, des tables de fonctions...
Les fonctions variables ne peuvent pas fonctionner avec les
éléments de langage comme les
echo(), print(),
unset(), isset(),
empty(), include(),
require()
etc. Vous devez utiliser votre propre gestion de fonctions pour utiliser
un de ces éléments de langages comme fonctions variables.
Exemple 17-14. Exemple de fonction variable
<?php function foo() { echo "dans foo()<br />\n"; }
function bar($arg = '' ) { echo "Dans bar(); l'argument était '$arg'.<br />\n"; }
// Ceci est une fonction détourné de echo function echoit($string) { echo $string; }
$func = 'foo'; $func(); // Appel foo()
$func = 'bar'; $func( 'test' ); // Appel bar()
$func = 'echoit'; $func('test'); // Appel echoit() ?>
|
|
Vous pouvez aussi appeler une méthode d'un objet en utilisant le système des
fonctions variables.
Exemple 17-15. Exemple de méthode variable
<?php class Foo { function Variable() { $name = 'Bar'; $this->$name(); // Appel la méthode Bar() } function Bar() { echo "C'est Bar"; } }
$foo = new Foo(); $funcname = "Variable"; $foo->$funcname(); // Appel $foo->Variable()
?>
|
|
Voir aussi
call_user_func(),
les variables variables et
function_exists().