Funzioni variabili

PHP supporta il concetto di funzioni variabili. Ci� significa che se un nome di variabile ha le parentesi accodate ad esso, PHP cercher� una funzione con lo stesso nome del valore della variabile, e cercher� di eseguirla. Tra le altre cose, ci� puo essere usato per implementare delle callbacks, tabelle di funzioni e cos� via.

Le funzioni variabili non funzionano con costrutti di linguaggio come echo(), print(), unset(), isset(), empty(), include(), require() e like. Occorre costruire una propria funzione per utilizzare questi costrutti come variabili per funzioni.

Esempio 17-14. Esempio di funzioni variabili

<?php
function foo() {
    echo 
"In foo()<br />\n";
}

function 
bar($arg '')
{
    echo 
"In bar(); l'argomento era '$arg'.<br />\n";
}

// Questa � la funzione per usare echo
function echoit($string)
{
    echo 
$string;
}

$func 'foo';
$func();        // questa chiama foo()
$func 'bar';
$func('test');  // questa chiama bar()

$func 'echoit';
$func('test');  // questa chiama echoit()
?>

Tramite le funzioni variabili si pu� eseguire anche metodi di oggetti.

Esempio 17-15. Esempio di un metodo variabile

<?php
class Foo
{
    function 
Variable()
    {
        
$name 'Bar';
        
$this->$name(); // Questo esegue il metodo Bar()
    
}
 
    function 
Bar()
    {
        echo 
"This is Bar";
    }
}
 
$foo = new Foo();
$funcname "Variable";
$foo->$funcname();  // Questo esegue $foo->Variable()
 
?>

Vedere anche call_user_func(), variabili variabili e function_exists().