2011-12-11 19 views
18

Duplicar posibles:
Use a variable to define a PHP functionUso variable como nombre de función en PHP

¿Hay una manera de utilizar una variable como un nombre de función.

Por ejemplo, tengo una variable

$varibaleA; 

y quiero crear una función, es decir

function $variableA() { 
} 

por lo que esta función se puede llamar más tarde en el guión. ¿Alguien sabe si esto se puede hacer?

Gracias

+0

por qué cada vez que piensa que esto es una buena idea, la de ellos probablemente una mejor solución. –

+0

posible duplicado de [Usar una variable para definir una función PHP] (http://stackoverflow.com/questions/7213825/use-a-variable-to-define-a-php-function) o [PHP: definir funciones con nombres de variable] (http://stackoverflow.com/questions/7337883/php-define-functions-with-variable-names) – mario

+0

No es un duplicado. Ese pide definir una función utilizando nombres * Dynamic *, no solo con una variable. –

Respuesta

23

declarar una función con un nombre de variable, pero arbitraria como esto no es posible sin ensuciarse las manos con eval() o include().

Yo creo base de lo que estamos tratando de hacer, tendrá que almacenar un anonymous function en esa variable en su lugar (create_function() utilizar si no estás en PHP 5.3+):

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

todavía se puede llamar como lo haría con cualquier variable function, así:

$variableA(); 
+0

Ahórrese la molestia. Tenga en cuenta el ';' después de '}'. –

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

es funcionalmente equivalente a hacer

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

Se llaman variable functions, y por lo general se debe evitar ya que están demasiado alejados de variables variables.

1

usted puede hacer esto:

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

y luego:

$foo(); 

obras en PHP 5.3+

Cuestiones relacionadas