2011-03-27 58 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'} 
新的呼叫
相關問題