使用一个variables来定义一个PHP函数

我想dynamic地使用variables命名一些函数,如下所示:

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

我知道我可以使用这样的variables来调用一个函数:

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

但是最好的例子不适合我。

有任何想法吗?

我正在使用具有模块的系统。 每个模块是一个单一的PHP脚本,可以添加或从一个特定的文件夹带走。

每个模块都需要一个新的函数来初始化它。 我是文件名glob.ing,然后我想循环,并创build一系列的function,每个模块。

我正在使用现有系统,无法重写模块处理。

另一种方法是只编写所有的init函数并对它们进行硬编码,但是随着列表的增长,代码也会如此 – 如果模块被带走,则会抛出错误。

你可以做的是

 $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(); 

这就是说,用dynamic名称定义函数是一个坏主意。 相反,创build一个你调用的函数的数组,或使用多态性。