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

нормально проблема в том, что мой $this->params является массив, есть что-то в PHP, что мы можем сделать, так это будет какпревратить массив в вары?

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

спасибо за глядя в

Адам Рамадхан

+1

http://php.net/manual/en/function.extract.php – scragz

ответ

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

Я думаю, что у Адама Хаппа есть ответ на ya. – MikeMurko

Смежные вопросы