Fonctions variables
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 de rappel, 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 #1 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�e 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 #2 Exemple de m�thode variable
<?php
class Foo
{
function Variable()
{
$name = 'Bar';
$this->$name(); // Appelle la m�thode Bar()
}
function Bar()
{
echo "C'est Bar";
}
}
$foo = new Foo();
$funcname = "Variable";
$foo->$funcname(); // Appelle $foo->Variable()
?>
Voir aussi call_user_func(), les variables variables et function_exists().