2011-12-11 26 views
18

Eventuali duplicati:
Use a variable to define a PHP functionUsa variabile come nome della funzione PHP

C'è un modo di usare una variabile come un nome di funzione.

Per esempio io ho una variabile

$varibaleA; 

e voglio creare una funzione cioè

function $variableA() { 
} 

quindi questa funzione può essere richiamata più avanti nello script. Qualcuno sa se questo può essere fatto?

Grazie

+0

perché mai si pensa che questo sia una buona idea, loro probabilmente una soluzione migliore. –

+0

possibile duplicato di [Utilizzare una variabile per definire una funzione PHP] (http://stackoverflow.com/questions/7213825/use-a-variable-to-define-a-php-function) o [PHP: definire le funzioni con nomi variabili] (http://stackoverflow.com/questions/7337883/php-define-functions-with-variable-names) – mario

+0

Non è un duplicato. Quello chiede di definire una funzione usando i nomi * Dinamici * - non solo con una variabile. –

risposta

23

Dichiarazione di una funzione con un nome di variabile, ma arbitrario come questo non è possibile senza sporcarsi le mani con eval() o include().

Io penso basano su ciò che si sta cercando di fare, ti consigliamo di memorizzare un anonymous function in quella variabile invece (utilizzare create_function() se non sei su PHP 5.3+):

$variableA = function() { 
    // Do stuff 
}; 

è ancora possibile chiamare come si farebbe con qualsiasi variable function, in questo modo:

$variableA(); 
+0

Salva te stesso il fastidio. Notare il ';' dopo '}'. –

9
$x = 'file_get_contents'; 
$html = $x('http://google.com'); 

è funzionalmente equivalente a fare

$html = file_get_contents('http://google.com'); 

Si chiamano variable functions, e in generale dovrebbero essere evitati come sono troppo lontani dalle variabili variabili.

1

si può fare questo:

$foo = function() { 
    //.. 
}; 

e poi:

$foo(); 

opere in PHP 5.3+

Problemi correlati