将数组作为参数传递

3

我正在制作一个控制器,它从一个类中调用不同的方法,我希望尽可能地使其通用。 我目前有以下代码:

//More code up, just showing the important code part
$geo = new Geolocation();
$res = $geo->{$method}(...$params);

echo json_encode($res);

我想要的是将一个数组作为参数传递给我的Geolocation类。
我从下一个线程中得到了一个思路: 在PHP中传递一个数组作为参数,而不是一个数组。 问题是"展开运算符"...不起作用,可能是因为它不是一个函数。有相关的解决方案吗?
PHP 5.6.20

3
“Not working”这个说法并不具体有用,请提供更详细的信息。 - Jonnix
顺便说一下,这对我来说可行 https://3v4l.org/i9n28 - Jonnix
@JonStirling:我猜我应该等待关于“不起作用”的答案。 - AbraCadaver
@AbraCadaver 只有两种不同的路线。答案是相关和准确的,我只是更感兴趣为什么展开运算符对 OP 不起作用,而不是一个明确的解决方案:D。 - Jonnix
抱歉,各位,这是我的错。其中任何一种解决方法都可以正常工作。 - jonilgz
@JonStirling:没有经过测试,我只是假设这是与变量方法{$method}有关的问题。 - AbraCadaver
1个回答

2
您所提供的链接中第一个答案展示了call_user_func_array()函数,所以使用对象方法时可以这样做:
$res = call_user_func_array(array($geo, $method), $params);

哦,谢谢,我刚才没看到那个答案。 - jonilgz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接