我目前的代码:
$operation = "alienFunction";
switch($operation){
case "alphaFunction":
alphaFunction();
break;
case "betaFunction":
betaFunction();
break;
case "alienFunction":
alienFunction($kidsPerPlanet, $planet);
break;
好的,我有很多功能。有些功能有参数,有些则没有。 $操作是从$ _POST变量接收的。我想做这样的事情:
$operation = "alphafunction";
$operation();
或者
$operation = "alienFunction";
$operation($kidsPerPlanet, $planet);
答案 0 :(得分:1)
正如您在寻找call_user_func_array()
的评论中所写的那样。只需使用它:
call_user_func_array($functionName, $argumentArray);
但是既然你不知道用哪个参数调用哪个函数,只需定义一个数组然后使用上面的代码,例如
$arguments = [
"alphaFunction" => [],
"betaFunction" => [],
"alienFunction" => [$kidsPerPlanet, $planet],
];
call_user_func_array($functionName, $arguments[$functionName]);
答案 1 :(得分:0)
优异。 多谢你们。对于没有参数的功能,它可以很好地工作。 我现在正在尝试这个:
$userInfo = MySQL_FETCH_ARRAY( MySQL_QUERY( ($autoAuth) ) );
CALL_USER_FUNC_ARRAY($operation, $userInfo);
在其中一个函数中,我将这段代码插入到HTML中:
ECHO "<p>" . VAR_DUMP($userInfo) . "</p>";
结果给了我&#34; string(2)&#34; 25&#34;。
我是新来的。所以我不知道该怎么做。当然,我的问题得到了回答。现在我知道如何使用字符串来调用函数。我应该关闭它,选择最佳答案并创建另一个问题吗?在我的整个问题得到解决的时候,我应该让它打开吗?或者我应该关闭它并仍然在这里评论以获得反馈?
非常感谢。我喜欢这个。我希望我能尽快做出贡献。 :)