2011-01-21 47 views
1
$controller->$method($this->params); 

确定的问题是,我$this->params数组,是有什么在PHP中,可以我们这样做就会像把数组变成瓦尔斯?

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

感谢寻找在

亚当·拉马丹

+1

http://php.net/manual/en/function.extract.php – scragz 2011-01-21 06:03:14

回答

0

我认为控制器是一些库类,你正在寻找一个不同的接口。一种解决方案是定义包装函数:

function my_wrapper(ControllerClass &$controller, &$params1, &$params2, &$untilllastparams) { 
    // create array from parameters 
    $controller->$method($param_array); 
}; 
0

你可以尝试使用eval和 “破灭” 功能(http://php.net/manual/en/function.implode.php) 。基本上破灭您的数组作为一个逗号分隔的字符串(这将代表您的方法参数),然后建立一个像这样的字符串,

$implodedString = implode(",", $this->params); 
eval("$controller->$method($implodedString);") 

很可能不是最理想的解决方案,我没有任何办法来测试它现在,但要放手。

+0

我认为亚当Hupp的答案为雅。 – MikeMurko 2011-01-21 06:11:10