将参数作为数组传递给call_user_func_array()时,如何在一个数组中接收参数

时间:2019-04-02 05:21:58

标签: php oop

我将参数作为第二个参数的数组发送,但是在接收函数中不能作为一个数组接收,我只能接收一个值作为一个变量,因此如果有3个参数,我在接收函数中定义了三个变量。

 $this->params[] = 'val1';
 $this->params[] = 'val2';

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

我期望在$ param中使用数组,但会遇到像$ param $ param2这样的块

 public function index( $params )
  {
   echo "<pre>";
   var_dump($param);
  }

 public function index( $param1, $param2 )
  {
   echo $param1;
   echo $param2;
  }

1 个答案:

答案 0 :(得分:3)

一个简单的解决方案是将参数包装在另一个数组中

from operator import mul
from functools import reduce

s = sum(reduce(mul, p) for p in product(*powers))

然后它将数组作为第一个参数传递给您的方法。