我从here找到了问题。但是我需要用参数调用函数名。 我需要能够调用一个函数,但函数名存储在一个变量中,这可能吗? e.g:
function foo ($argument)
{
//code here
}
function bar ($argument)
{
//code here
}
$functionName = "foo";
$functionName($argument);//Call here foo function with argument
// i need to call the function based on what is $functionName
Anyhelp会很感激。
答案 0 :(得分:2)
哇,我不希望有4金币的用户提出这样的问题。您的代码已经可以使用了
<?php
function foo ($argument)
{
echo $argument;
}
function bar ($argument)
{
//code here
}
$functionName = "foo";
$argument="Joke";
$functionName($argument); // works already, might as well have tried :)
?>
<强>输出强>
笑话
<强> Fiddle 强>
现在谈一点理论,这些函数叫做 Variable Functions
PHP支持变量函数的概念。这意味着如果变量名称附加了括号,PHP将查找与变量求值的名称相同的函数,并尝试执行它。除此之外,这可以用于实现回调,函数表等。
答案 1 :(得分:2)
如果你想用参数动态调用一个函数,你可以尝试这样:
function foo ($argument)
{
//code here
}
call_user_func('foo', "argument"); // php library funtion
希望它对你有所帮助。
答案 2 :(得分:2)
你可以使用php函数call_user_func。
function foo($argument)
{
echo $argument;
}
$functionName = "foo";
$argument = "bar";
call_user_func($functionName, $argument);
如果您在课堂上,可以使用call_user_func_array:
//pass as first parameter an array with the object, in this case the class itself ($this) and the function name
call_user_func_array(array($this, $functionName), array($argument1, $argument2));