Funciones variables

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 17-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 17-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().

Hosting by: hurra.com
Generated: 2007-01-26 18:01:08