如何从存储在带参数的Variable中的字符串调用PHP函数

时间:2015-03-18 06:45:37

标签: php

我从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会很感激。

3 个答案:

答案 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));