4. smarty 变量操作

来源:互联网 发布:数据体现不出邓肯作用 编辑:程序博客网 时间:2024/06/05 20:39

1.数据类型
TestControler.php

<?phprequire_once './libs/Smarty.class.php';//创建 smarty$smarty = new Smarty();$smarty->left_delimiter = '<{';$smarty->right_delimiter = '}>';//字符串$smarty->assign('aa','hello');//放整数$smarty->assign('bb',567);$smarty->assign('cc',56.7);//布尔值$smarty->assign('dd',true);$smarty->assign('ee',false);//null 不显示//存放一维数组,数组一般是从数据库取出,这里模拟一把//1.索引数据$arr1 = array('北京','上海','天津');$smarty->assign('arr1',$arr1);//2.索引数组$arr2 = array('city1'=>'北京','city2'=>'上海','city3'=>'天津');$smarty->assign('arr2',$arr2);//3.存放二维数组,这个二维数组是从数据库提取的$arr3 = array(    array('北京','上海','天津'),    array('AAA','BBB','CCC'));$smarty->assign('arr3',$arr3);//关联数组$arr4 = array(    array('id'=>'a001','email'=>'184@qq.com','age'=>23),    array('id'=>'b001','email'=>'184@qq.com','age'=>18));$smarty->assign('arr4',$arr4);$arr5 = array(    'emp1'=>array('id'=>'a001','email'=>'184@qq.com','age'=>23),    'emp2'=>array('id'=>'b001','email'=>'184@qq.com','age'=>18));$smarty->assign('arr5',$arr5);$arr6 = array(    'emp1'=>array('a001','184@qq.com',23),);$smarty->assign('arr6',$arr6);//************ 对象的分配 **********class Dog{    public $name;    public $master;    public $age;    public $color;    public $arr = array(1,2,3);    public $arr2 = array(        array('a','b','c')    );    public function __construct($name,$age,$color)    {        $this->name = $name;        $this->age = $age;        $this->color = $color;    }}class Master{    public $name;    public $address;}$master = new Master();$master->name = 'wjh';$master->address = 'beijing';$dog1 = new Dog('小米',5,'红色');$dog1->master = $master;$smarty->assign('dog1',$dog1);$smarty->display('test.tpl');

test.tpl

<h1>数据显示</h1><hr/><br/>********取字符串*********<br/><{$aa}><br/>********取整数*********<br/><{$bb}><br/>********取整数*********<br/><{$cc}><br/>********取布尔值*********<br/><{$dd}><{$ee}><br/>********取一维索引数组*********<br/><{$arr1[0]}> || <{$arr1[1]}> || <{$arr1[2]}><br/>********取一维关联数组*********<br/><{$arr2.city1}> || <{$arr2.city2}> || <{$arr2.city3}><br/>********取索引二维数组*********<br/><{$arr3[0][0]}> || <{$arr3[0][1]}> ||<{$arr3[0][2]}><br/><{$arr3[1][0]}> || <{$arr3[1][1]}> ||<{$arr3[1][2]}><br/>********取关联二维数组*********<br/><{$arr4[0].id}> || <{$arr4[0].email}> ||<{$arr4[0].age}><br/><br/><{$arr5.emp1.id}> || <{$arr5.emp1.email}> ||<{$arr5.emp1.age}><br/><br/><{$arr6.emp1[0]}> || <{$arr6.emp1[1]}> ||<{$arr6.emp1[2]}><br/><br/><br/>********取对象的值*********<br/><{$dog1->age}> || <{$dog1->name}> ||<{$dog1->color}><br/>********取对象的数组*********<br/><{$dog1->arr[0]}> || <{$dog1->arr2[0][1]}><br/>********取对象的对象属性*********<br/><{$dog1->master->name}>

2.让模板从配置文件中读取数据
这里写图片描述
这里写图片描述
这里写图片描述


3.模板获取 PHP 保留变量
这里写图片描述

传统方法:

TestController.php

$smarty = new Smarty();//比如我们希望把 get/post/session/server 的数据传递给 tpl//传统方法$username = $_GET['username'];$smarty->assign('username',$username);$smarty->display('my.tpl');

my.tpl

<{config_load file='../config/my.conf'}><h1><{#title#}></h1><h2>{$username}</h2>

直接用smarty定义的变量:

my.tpl

{$smarty.get.username}{$smarty.post.username}{$smarty.server.SERVER_NAME}
0 0