使用call_user_func_array在同一个类的另一个函数中调用php类函数

时间:2015-06-17 10:41:45

标签: php

我有一个类似于以下内容的php类。

class Foo{
function New_Function($functionName,$ParamsArray){
    $retValue = call_user_func_array($functionName,$ParamsArray);
    return $retValue;
}

function req_function(param1,param2){
    //Doing something
    }

function otherfunction($param1,$param2){
   $getval = $this->New_Function('req_function',array($param1,$param2));
   }
}

我想使用req_functionotherfunction调用call_user_func_array作为相同类的函数(因为有许多函数,如req_functions,因此我决定使用{{ 1}}),但我无法这样做,因为我还没有使用指向父类的call_user_func_array指针。

如何让我的计划有效?

1 个答案:

答案 0 :(得分:0)

您的代码包含多个错误。请查看评论以获取详细信息。

class Foo{
    function New_Function($functionName,$ParamsArray){
        // Call a class method by array(CLASS, METHOD)
        $retValue = call_user_func_array(array($this, $functionName),$ParamsArray);
        return $retValue;
    }

    // Leading dollar signs were missing
    function req_function($param1,$param2){
        echo "$param1: $param2";
    }

    function otherfunction($param1,$param2){
        $functionName = 'req_function'; // $functioName was not defined
        // Call $this->New_Function instead of New_Function
        $getval = $this->New_Function($functionName,array($param1,$param2)); 
    }
}

$test = new Foo();
$test->otherfunction("a", "b");