我试图用smarty扩展锂电PHP,除了我的smarty插件允许访问锂助手外,一切工作正常。正确使用call_user_func_array
我的聪明功能是为了成为锂助手的“猫”。我正在努力的部分是动态地将helpers参数添加到我的回调中。
简化的代码
$params = array('Google', 'http://www.google.com');
$helper = function($args){
return $this->html->link($args);
};
return call_user_func_array($helper, $params);
这导致与<a href="/Google">Google</a>
一些进一步的测试表明,上述仅$ params数组回调...奇怪传递的第一个项目。所以我把它包装在自己的数组中。拿那件事,我无法解释!
return call_user_func_array($helper, array($params));
这产生了锂错误,我不会进入,然而,它看起来辅助正在传递的阵列,没有翻译参数从阵列作为单个参数。
错误代码段 '找不到URL (0 => 'Google', 1 => 'http://www.google.com', 'controller' => 'pages', 'action' => 'index')
的参数匹配项。
所以我收集,我错过了call_user_func_array方法。
我不会在这是唯一的解决方案来实现我的目标,如果你能想到一个更好的方法来随时动态地传递函数任意数量的参数,我将会非常棒。
请注意函数:$ this->
html
- >link
是解释我的问题的简化方法,该html
和link
部分该对象实际上会动态改变,因此对于完全动态的函数参数的要求。
这工作完美!我的英雄! – joseym 2012-04-17 19:27:11