2011-12-11 19 views
18

Powiel możliwe:
Use a variable to define a PHP functionZastosowanie Zmienna jako nazwa funkcji w PHP

Czy istnieje sposób użycia zmiennej jako nazwy funkcji.

Na przykład mam zmienną

$varibaleA; 

i chcę utworzyć funkcję tj

function $variableA() { 
} 

więc funkcja ta może być wywołana później w skrypcie. Czy ktoś wie, czy można to zrobić?

Dzięki

+0

dlaczego kiedykolwiek myślisz, że to dobry pomysł, oni prawdopodobnie lepszym rozwiązaniem. –

+0

możliwy duplikat [Użyj zmiennej do zdefiniowania funkcji PHP] (http://stackoverflow.com/questions/7213825/use-a-variable-to-define-a-php-function) lub [PHP: zdefiniuj funkcje za pomocą nazwy zmiennych] (http://stackoverflow.com/questions/7337883/php-define-functions-with-variable-names) – mario

+0

Nie duplikat. Ten prosi o zdefiniowanie funkcji za pomocą nazw * Dynamic * - nie tylko za pomocą zmiennej. –

Odpowiedz

23

deklarowania funkcji ze zmienną ale arbitralne nazwy jak nie jest to możliwe bez uzyskiwania ręce brudne z eval() lub include().

myślę na podstawie tego, co starasz się zrobić, będziemy chcieli, aby przechowywać anonymous function w tej zmiennej, zamiast (użyj create_function() jeśli nie jesteś na PHP 5.3+):

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

nadal można nazwać tak jak każdy variable function, tak:

$variableA(); 
+0

Zachowaj sobie uciążliwość. Zwróć uwagę na ';' po '}'. –

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

jest funkcjonalnie równoważne temu

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

Są one nazywane variable functions i generalnie należy unikać, ponieważ są one zbyt daleko od zmiennych zmiennych.

1

można to zrobić:

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

a następnie:

$foo(); 

prace w PHP 5.3+