smarty模板引擎对各种数据的基本操作

我们都知道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>
他们的取法在模板里面都有相应的规范。

这里总结一下:

一般数据类型,如整数,小数,字符串等即直接使用就可以了。

如果是数组类型,分为这么两种:即有关联和无关联,前者要用下点号取,后者直接用数组的方式,依次类推。

而对象则是用“->”的方式进行指定。

如果是复合型的数据,要根据以上的原则便可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值