2011-01-21 62 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