繁体   English   中英

变量内的函数名称

[英]Function name inside a variable

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

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

“后缀”将是一个简单的文本。 我尝试了所有我想过的事情,但没有任何效果。

您想要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

有两种方法可以执行此操作。 假设:

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')();是语法错误)。

您需要变量变量

以下是一些示例代码,向您展示其工作方式以及所产生的错误:

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

您也可以执行sprintf($ string)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM