2011-03-27 187 views
3

嘿, 我想知道是否可以将一个关联数组作为自定义函数中的参数传递。这是我的情景:在一个自定义函数中传递一个数组作为参数

在php文件我设置阵列:

$dataArr = array('one'=>'1','two'=>'2','three'=>'3'); 
$tpl->assign('dataArr',$dataArr); 

这是我的自定义功能迟钝下来

function smarty_function_drawChart($params, &$smarty){ 
      print_r($params); 
    } 

这是我的函数调用模板

{drawChart data={$dataArr} title='Title of the Chart'} 

我遇到的问题是,如果你注意到,我的print_r($ params)方法,即显示:

Array 
(
    [data] => Array 
    [title] => Title of the Chart 
) 

这似乎是通过字符串“阵”,而不是实际的数组。在传递显示{$ dataArr.one}有值的$ dataArr之前,我已经完成了调试。一旦进入我的自定义函数$ params ['data']。一个不存在。

关于我在做什么的错误?

感谢
列维

回答

0

我仍然不是100%肯定,为什么我上面的代码不工作。我的想法是,括号的工作原理就像一个'回声'将在PHP中做的,这就是为什么字符串'数组'被传递给函数。我可以通过简单地移除$ dataArr变量的括号来实现它。

这是我原来的呼叫:

{drawChart data={$dataArr} title='Title of the Chart'} 

这是我的作品

{drawChart data=$dataArr title='Title of the Chart'} 
新的呼叫
相关问题