Forum und email

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.

Example#1 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.

Example#2 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().