把数组转为vars?

时间:2011-01-21 06:01:57

标签: php arrays

$controller->$method($this->params);

好的问题是我的$this->params一个数组,php中有什么我们可以做的就像

$controller->$method($params1,$params2,$untilllastparams); ?

感谢您查看

Adam Ramadhan

3 个答案:

答案 0 :(得分:3)

您正在寻找call_user_func_array()。在您的示例中,这将是:

call_user_func_array(array($controller, $method), $this->params);

http://php.net/manual/en/function.call-user-func-array.php

答案 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);")

这可能不是最理想的解决方案,我现在没有办法测试它,但是试一试。