我正在尝试编写一个动态调用其他助手的视图助手,并且我无法传递多个参数。下面的场景将工作:zf2在动态助手调用中传递多个参数
$helperName = "foo";
$args = "apples";
$helperResult = $this->view->$helperName($args);
然而,我想要做这样的事情:
$helperName = "bar";
$args = "apples, bananas, oranges";
$helperResult = $this->view->$helperName($args);
与此:
class bar extends AbstractHelper
{
public function __invoke($arg1, $arg2, $arg)
{
...
,但它传递"apples, bananas, oranges"
到$arg1
并没有给其他论点。
我不想在调用帮助器时发送多个参数,因为不同的帮助器采用不同数量的参数。我不想写我的助手把参数作为一个数组,因为整个项目的其余部分的代码都用谨慎的参数调用助手。
完善。在我的情况下,助手接收'$ args'作为逗号分隔的字符串,所以我不能动态地写'$ args = array('apple','bananas','oranges');'。但是,数组转换很容易用'$ args = explode(“,”,$ args);'来实现。 – jcropp