[英]Function name inside a variable
我有一个简单的问题(我想)。 我从数据库中获取变量内的函数名称。 之后,我要运行特定功能。 我如何在php文件中回显函数的名称? 代码是这样的:
$variable= get_specific_option;
//execute function
$variable_somesuffix();
“后缀”将是一个简单的文本。 我尝试了所有我想过的事情,但没有任何效果。
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.