使用一个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一个你调用的函数的数组,或使用多态性。