PHP: определение функций с именами переменных

У меня есть массив строк, и я хочу определить функции с именами, являющимися этими строками. Есть ли способ сделать это в PHP?

$a = array("xxx", "yyy", "zzz"); 

Как программно определить xxx() , yyy() и zzz() ?

Большое спасибо

Solutions Collecting From Web of "PHP: определение функций с именами переменных"

Если вам действительно нужно было объявить функцию в блоке eval :

 foreach ($a as $functionname) eval(' function '.$functionname.' () { print 123; } '); 

Но это приводит к некоторому дополнительному штрафу за время синтаксического разбора за простое объявление функций в файле.

Вы этого не сделаете, это невозможно.

С помощью трюка магического метода вы можете добиться этого на экземпляре объекта (так работает $ obj-> xxx (), см.: __call ), но вы не можете создать глобальную функцию, основанную на имени переменной.

Примечание. Я знаю, что вы можете $ var (), но это не то, что задал ОП.

 $a = array("xxx", "yyy", "zzz"); foreach($a as $functionname){ $code = <<< end function $functionname(){ //your logic here for each function } end; eval($code); } 

Однако, пожалуйста, не следует, что Eval не рекомендуется использовать, вы должны найти другой подход.