如何从存储在变量中的字符串调用PHP函数

如何从存储在变量中的字符串调用PHP函数

我需要能够调用一个函数,但是函数名存储在一个变量中,这可能吗?例如:

function foo ()
{
  //code here
}

function bar ()
{
  //code here
}

$functionName = "foo";
// i need to call the function based on what is $functionName

任何帮助都会很好。

谢谢!


慕森卡
浏览 429回答 3
3回答

达令说

$functionName()或call_user_func($functionName)

12345678_0001

我最喜欢的版本是内联版本:${"variableName"} = 12;$className->{"propertyName"};$className->{"methodName"}();StaticClass::${"propertyName"};StaticClass::{"methodName"}();您也可以在括号中放置变量或表达式!

aluckdog

如前所述,有几种方法可以用最安全的方法来实现:call_user_func()或者如果你必须的话,你也可以沿着$function_name()..可以使用这两种方法传递参数,如下所示$function_name = 'foobar';$function_name(arg1, arg2);call_user_func_array($function_name, array(arg1, arg2));如果要调用的函数属于一个对象,则仍然可以使用以下任何一个$object->$function_name(arg1, arg2);call_user_func_array(array($object, $function_name), array(arg1, arg2));但是,如果要使用$function_name()方法如果名称以任何方式是动态的,则测试函数是否存在可能是一个好主意。if(method_exists($object, $function_name)){     $object->$function_name(arg1, arg2);}
打开App,查看更多内容
随时随地看视频慕课网APP