2011-03-27 1 views
3

Hey, Je me demandais s'il était possible de passer un tableau associatif en tant que paramètre dans une fonction personnalisée. Voici mon scénario:Passer un tableau en tant que paramètre dans une fonction personnalisée

Dans le fichier php je mis le tableau:

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

Ceci est ma fonction personnalisée émoussée vers le bas

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

Ceci est mon appel de fonction le modèle

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

Le problème que j'ai est que si vous remarquez où je print_r ($ params), qui montre:

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

Il semble passer la chaîne « Array » plutôt que le tableau réel. J'ai fait le débogage juste avant de passer le $ dataArr qui montre {$ dataArr.one} a une valeur. Une fois dans ma fonction personnalisée $ params ['data'], il n'y en a pas.

Des idées sur ce que je fais mal?

Merci
Levi

Répondre

0

Je ne suis toujours pas 100% sûr pourquoi mon code ne fonctionne pas au-dessus. Ma pensée est que les crochets fonctionnent exactement comme un 'echo' en php, c'est pourquoi la chaîne 'Array' était passée dans la fonction. J'ai réussi à le faire fonctionner en supprimant simplement les crochets entourant la variable $ dataArr.

Ce fut mon premier appel:

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

Ceci est mon nouvel appel qui fonctionne

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