Используйте переменную для определения функции PHP

Я хотел бы динамически назвать несколько функций с помощью переменных, например:

$thing = 'some_function'; function $thing() { echo 'hi!'; } 

Я знаю, что могу вызвать функцию, используя переменную вроде этого:

 $something = 'function_exists'; if( $something('print_r') ) { echo 'Yep'; } 

Но лучший пример для меня не работает.

Есть идеи?

Я использую систему с модулями. Каждый модуль представляет собой один php-скрипт, который можно добавить или удалить из определенной папки.

Каждый модуль нуждается в новой функции для его инициализации. Я глобал для имен файлов, затем я хочу создать цикл и создать ряд функций, по одному для каждого модуля.

Я использую существующую систему и не могу переписать обработку модуля.

Альтернативой было бы просто написать все функции инициализации и жестко закодировать их, но по мере того, как список растет, так и код – и если модуль отнимается, то возникают ошибки.

Что вы можете сделать, это

 $thing = 'some_function'; $$thing = function() { echo 'hi'; }; $some_function(); 

В php <5.3 вам придется использовать create_function вместо анонимной функции :

 // Use this in < 5.3 $thing = 'some_function'; $$thing = create_function('', 'echo "hi";' ); $some_function(); 

При этом определение функций с динамическими именами – плохая идея. Вместо этого создайте массив функций, которые вы вызываете, или используйте полиморфизм.