$controller->$method($this->params);
好的问题是我的$this->params
是一个数组,php中有什么我们可以做的就像
$controller->$method($params1,$params2,$untilllastparams); ?
感谢您查看
Adam Ramadhan
答案 0 :(得分:3)
您正在寻找call_user_func_array()。在您的示例中,这将是:
call_user_func_array(array($controller, $method), $this->params);
答案 1 :(得分:0)
我认为控制器是一些库类,你正在寻找一个不同的接口。一种解决方案是定义包装函数:
function my_wrapper(ControllerClass &$controller, &$params1, &$params2, &$untilllastparams) {
// create array from parameters
$controller->$method($param_array);
};
答案 2 :(得分:0)
您可以尝试使用eval和“内爆”功能(http://php.net/manual/en/function.implode.php)。基本上将您的数组作为逗号分隔的字符串内爆(这将代表您的方法参数),然后构建一个类似的字符串,
$implodedString = implode(",", $this->params);
eval("$controller->$method($implodedString);")
这可能不是最理想的解决方案,我现在没有办法测试它,但是试一试。