我们都知道smarty是用来写模板的,但是写入模板的数据可以大致的分为这么几种:
整数 小数 字符串 布尔值 数组(一维索引,一维关联数组,二维数组,二维关联数组等) 对象。
下面是我的实例代码,对每一种变量类型都有测试:
<?php require_once './libs/Smarty.class.php'; $smarty=new Smarty(); $smarty->left_delimiter="<{"; $smarty->right_delimiter="}>"; $smarty->assign("var1","Happy"); $smarty->assign("var2",333); $smarty->assign("var3",3.1415926); $smarty->assign("var4",true); //数组一般是从数据库里面取出 $arr1=array('北京','上海','天津'); $smarty->assign("var5",$arr1); $arr2=array('city1'=>'北京','city2'=>'上海','city3'=>'天津'); $smarty->assign("var6",$arr2); $arr3=array(array('北京','上海','天津'),array('宋江','卢俊义','张飞')); $smarty->assign("var7",$arr3); $arr4=array(array('city1'=>'北京','city2'=>'上海','city3'=>'天津'),array('person1'=>'宋江','person2'=>'卢俊义','person3'=>'张飞')); $smarty->assign("var8",$arr4); $arr5=array('emp1'=>array('city1'=>'北京','city2'=>'上海','city3'=>'天津'),'emp2'=>array('person1'=>'宋江','person2'=>'卢俊义','person3'=>'张飞')); $smarty->assign("var9",$arr5); class Dog{ var $name; var $age; var $color; var $arr; function __construct($name,$age,$color,$arr){ $this->name=$name; $this->age=$age; $this->color=$color; $this->arr=$arr; } } $dog_1=new Dog('小白',18,'yellow',$arr1); $smarty->assign("var10",$dog_1); $dog_2=new Dog('小黑',20,'black',$arr2); $smarty->assign("var11",$dog_2); echo "<pre>"; print_r($_SERVER); echo "</pre>"; //说明该对象使用哪一个模板。 $smarty->display("test.tpl"); ?>以上smarty对象的创建和数据的分配实现,下面是其对应的模板:
<{config_load file='../config/my.conf'}> <body bgcolor="<{#bgcolor#}>"> <h1><{#title#}></h1> <{$var1}><hr/> <{$var2}><hr/> <{$var3}><hr/> <{$var4}><hr/> <{$var5[0]}>********<{$var5[1]}>*******<{$var5[2]}><hr/> <{$var6.city1}>*******<{$var6.city2}>*******<{$var6.city3}><hr/> <{$var7[0][0]}>********<{$var7[0][1]}>*******<{$var7[0][2]}>******* <{$var7[1][0]}>********<{$var7[1][1]}>*******<{$var7[1][2]}><hr/> <{$var8[0].city1}>********<{$var8[0].city2}>*******<{$var8[0].city3}>******* <{$var8[1].person1}>********<{$var8[1].person2}>*******<{$var8[1].person3}><hr/> <{$var9.emp1.city1}>**********<{$var9.emp1.city2}>**********<{$var9.emp1.city3}>******** <{$var9.emp2.person1}>*********<{$var9.emp2.person2}>*********<{$var9.emp2.person3}><hr/> <{$var10->name}>******************<{$var10->age}>*********************<{$var10->color}><hr/> <{$var10->arr[0]}>***************<{$var10->arr[1]}>*********************<{$var10->arr[2]}><hr/> <{$var11->arr.city1}>*****************<{$var11->arr.city2}>***************<{$var11->arr.city3}><hr/> <{$smarty.get.usename}><hr/> <{$smarty.server.SERVER_NAME}> </body>他们的取法在模板里面都有相应的规范。
这里总结一下:
一般数据类型,如整数,小数,字符串等即直接使用就可以了。
如果是数组类型,分为这么两种:即有关联和无关联,前者要用下点号取,后者直接用数组的方式,依次类推。
而对象则是用“->”的方式进行指定。
如果是复合型的数据,要根据以上的原则便可以了。
原文地址:http://blog.csdn.net/mycodedream/article/details/44941967