如何将php $字符串转换为$ string()函数调用?

时间:2015-06-03 15:04:11

标签: php function

我目前的代码:

$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);

2 个答案:

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

我是新来的。所以我不知道该怎么做。当然,我的问题得到了回答。现在我知道如何使用字符串来调用函数。我应该关闭它,选择最佳答案并创建另一个问题吗?在我的整个问题得到解决的时候,我应该让它打开吗?或者我应该关闭它并仍然在这里评论以获得反馈?

非常感谢。我喜欢这个。我希望我能尽快做出贡献。 :)