我在调用名称为字符串的函数时遇到问题。
我做了一些帮助,我想在我的phtml文件中回显:
echo $this->EditProfile();
echo $this->ViewProfile();
EditProfile()和ViewProfile()是我创建的View Helpers的名称,我在视图中调用它们。这种方法工作正常。但是,当我想通过存储在数据库中的名称动态调用函数时,我试图以这种方式执行此操作:
从数据库中获取帮助程序的名称并将它们存储到数组中,然后尝试在foreach中显示它们。
foreach ($this->modules as $key => $module)
{
echo $this->$module['name'];
}
变量
$module['name']
包含一个有效的Helper名称,我希望在phtml文件中调用(使用Zend_debug :: dump()进行检查,并在foeach中只使用echo $ module ['name']并且id正确显示...但是这个回声它没有工作,没有调用View Helper,没有显示任何内容
当我尝试使用eval或call_user_func时,也没有显示任何内容......如何在foreach或其他循环中执行此操作?
答案 0 :(得分:0)
好吧自己解决了:) 不知道这个解决方案是否正确,但它实际上正在工作;)
而是call_user_func我提到魔法函数__call与call_user_func_array相同
所以我编辑了如下代码
foreach ($this->modules as $key => $module)
{
$this->__call($module['name'],array(null));
}
在这种情况下,数组为null,因为没有参数传递给函数。如果我的助手生病需要参数,将来在这个数组中传递它们。 这个解决方案适合我:)
如果有人有更好的解决方案,请在此发布并分享您的意见;) 问候 Darek