我有一个简单的问题(我猜)。 我从数据库中获取函数的名称。之后,我想运行特定的功能。我如何在php文件中回显函数的名称? 代码是这样的:
$variable= get_specific_option;
//execute function
$variable_somesuffix();
“somesuffix”将是一个简单的文字。我尝试了所有我想到的东西,但没有任何效果。
答案 0 :(得分:3)
function hello($name="world")
{
echo "hello $name";
}
$func = "hello";
//execute function
call_user_func($func);
> hello world
call_user_func($func, "byron");
> hello byron
答案 1 :(得分:2)
有两种方法可以做到这一点。假设:
function foo_1() {
echo "foo 1\n";
}
您可以使用call_user_func()
:
$var = 'foo';
call_user_func($foo . '_1');
或者这样做:
$var = 'foo';
$func = $var . '_1';
$func();
不幸的是,你不能直接做最后一个(即($var . '_1')();
是语法错误)。
答案 2 :(得分:2)
以下是一些示例代码,向您展示它是如何工作的,以及产生的错误:
function get_specific_option() {
return 'fakeFunctionName';
}
$variable = get_specific_option();
$variable();
// Fatal error: Call to undefined function fakeFunctionName()
$test = $variable . '_somesuffix';
$test();
// Fatal error: Call to undefined function fakeFunctionName_somesuffix()
答案 3 :(得分:-1)
你也可以做sprintf($ string)。