Forum und email

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.

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

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