将数组作为自定义函数中的参数传递

时间:2011-03-27 02:25:40

标签: php smarty

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

在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
)

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

关于我做错的任何想法?

由于
列维

1 个答案:

答案 0 :(得分:0)

我仍然不能100%确定为什么上面的代码不起作用。我的想法是括号在php中就像'echo'一样工作,这就是字符串'Array'被传递到函数中的原因。通过简单地删除$ dataArr变量周围的括号,我能够使它工作。

这是我最初的电话:

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

这是我的新电话

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