我有一个名为test的函数正在被调用,只是回声“测试”让这个问题保持简单。
test();
function test() {
echo "do something";
}
但是我想尝试使函数动态化,如果这是正确的单词选择。
我有一个数据库中的记录列表,并且根据每条记录,我可能想要一个不同的函数来处理该记录,然后想法是在数据库中有一个字段,它将是function_name,然后我使用它一些如何调用该函数的字段。
喜欢这个
test();
$function_name = "test";
function $function_name() {
echo "do something here";
}
我能想到解决这个问题的唯一方法是使用开关/外壳,但这会引起我的其他问题。
答案 0 :(得分:1)
该函数必须使用特定名称定义,但您可以使用包含其名称的变量来调用它: -
<?php
function name() {
echo "name";
}
$func_name = 'name';
// its always a good idea to check that function
// actually exists before calling it.
if (function_exists($func_name)) {
$func_name();
}
答案 1 :(得分:0)
使用闭包:
<?php
$funcName = 'test';
$$funcName = function ()
{
echo 'Do something';
};
$test(); // 'Do something'
$$funcName(); // 'Do something'