PHP soporta el concepto de funciones variable, esto significa que
si una variable tiene unos paréntesis añadidos al
final, PHP buscará una función con el mismo nombre
que la evaluación de la variable, e intentará
ejecutarla. Entre otras cosas, esto te permite implementar
retrollamadas (callbacks), tablas de funciones y demás.
Las funciones varibles no funcionarán con construcciones del
lenguaje, tal como echo(),
print(), unset(),
isset(), empty(),
include(), require() y
derivados. Se necesitará usar una función propia para
utilizar cualquiera de estos constructores como funciones
variables.
Ejemplo 12-12. Ejemplo de función variable
<?php function foo() { echo "In foo()<br>\n"; }
function bar($arg = '') { echo "In bar(); argument was '$arg'.<br>\n"; }
// This is a wrapper function around echo function echoit($string) { echo $string; }
$func = 'foo'; $func(); // This calls foo()
$func = 'bar'; $func('test'); // This calls bar()
$func = 'echoit'; $func('test'); // This calls echoit() ?>
|
|
También se puede llamar a un metodo de un objeto usando la
característica variable de las funciones.
Ejemplo 12-13. Ejemplo sobre el metodo variable
<?php class Foo { function Var() { $name = 'Bar'; $this->$name(); // This calls the Bar() method } function Bar() { echo "This is Bar"; } }
$foo = new Foo(); $funcname = "Var"; $foo->$funcname(); // This calls $foo->Var()
?>
|
|
Ver también call_user_func(),
variable variables y function_exists().