日期:2014-05-17  浏览次数:20528 次

[难]smarty 模板的数组这样好像完全等价, 为什么呢?
$arr = array("a"=>array(1,2,3),"b"=>array("c"=>array("d"=>array("e"=>"Tom","f"=>"BeiJing"))));
$smarty->assign("A",$arr);
$smarty->display("testTwo.html");


HTML code

<!--testTwo.html-->

{$A['b'].c['d'].e}
<!-- 输出Tom -->
{$A['b'].c['d'].e} {$A['b'].c['d'].e} {$A.b.c.d.e}

a.b ==a['b'] 

http://topic.csdn.net/u/20120612/22/8610da65-573c-462e-b4b6-2175551441b0.html

------解决方案--------------------
确实,这三种情况在smarty中都可被解析:
HTML code

{$A['b'].c['d'].e}<br>            <!-- Tom -->
     {$A.b.c.d.e}<br>                  <!-- Tom -->
     {$A['b']['c']['d']['e']}<br>    <!-- Tom -->

------解决方案--------------------
smarty模板中的变量
可以是关联变量,用‘.’联接,‘.’前面总是要包含后面的。
可以是数字变量,如$A[0][1],当然也可换成键值$A['key1']['key2']


具体参照
http://0512on.com/bbs/forum.php?mod=viewthread&tid=2400&extra=