变量内的函数名称

时间:2010-05-03 23:48:44

标签: php function variables

我有一个简单的问题(我猜)。 我从数据库中获取函数的名称。之后,我想运行特定的功能。我如何在php文件中回显函数的名称? 代码是这样的:

$variable= get_specific_option;
//execute function
$variable_somesuffix();

“somesuffix”将是一个简单的文字。我尝试了所有我想到的东西,但没有任何效果。

4 个答案:

答案 0 :(得分:3)

您需要call_user_func

 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)

你想要variable variables

以下是一些示例代码,向您展示它是如何工作的,以及产生的错误:

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)。