smarty模板引擎之分配数据类型


Posted in PHP onMarch 30, 2015

本文实例讲述了smarty模板引擎之分配数据类型用法。分享给大家供大家参考。具体分析如下:

一、分配基本数据

//分配基本数据
$smarty->assign("str","hello smarty!");
$smarty->assign("int",143);
$smarty->assign("double",12.1344);
$smarty->assign("bool",true);
$smarty->assign("bool2",false); 
字符串类型:<{$str}> <br/>
整型:<{$int}> <br/>
浮点型:<{$double}> <br/>
布尔类型真:<{$bool}> <br/>
布尔类型假:<{$bool2}> <br/>

浏览器显示结果:

smarty模板引擎之分配数据类型

1表示真,0表示假,假的时候为null,什么都不显示。

二、分配复合数据之数组

//索引数组 
$res=array('上海','北京','深圳');
$smarty->assign("arr",$res);
//关联数组
$res2=array('city1'=>'北京','city2'=>'广州','city3'=>'湖南');
$smarty->assign("arr2",$res2); 
//索引二维数组
$res3 = array( 
  array('潇晓','常山','吴蓓'),array('珊珊','常明')
); 
$smarty->assign("arr3",$res3); 
//关联二维数组 
$res4 = array( 
  array('id'=>'001','name'=>'张三','email'=>'zhangsan@1163.com'),
  array('url'=>'http://www.baidu.com','age'=>'28')
); 
$smarty->assign("arr4",$res4); 
//关联二维数组2 
$res5=array( 
  'emp1'=>array('id'=>'001','name'=>'张三','email'=>'zhangsan@1163.com'),
  'emp2'=>array('url'=>'http://www.baidu.com','age'=>'28')
); 
$smarty->assign("arr5",$res5);

模板文件

索引数组:元素1:<{$arr[0]}>,元素2:<{$arr[1]}>,元素3:<{$arr[2]}> <br/> 
关联数组取法1(不推荐):元素1:<{$arr2['city1']}>,元素2:<{$arr2['city2']}>,元素3:<{$arr2['city3']}> <br/> 
关联数组取法2(推荐):元素1:<{$arr2.city1}>,元素2:<{$arr2.city2}>,元素3:<{$arr2.city3}> <br/> 
二维索引数组: 
元素1:<{$arr3[0][0]}>, 
元素2:<{$arr3[0][1]}>, 
元素3:<{$arr3[0][2]}>, 
元素4:<{$arr3[1][0]}>, 
元素5:<{$arr3[1][1]}> <br/> 
关联二维数组形式1: 
id-<{$arr4[0].id}>, 
name-<{$arr4[0].name}>, 
email-<{$arr4[0].email}>, 
url-<{$arr4[1].url}>, 
age-<{$arr4[1].age}> <br/> 
关联二维数组形式2: 
id-<{$arr5.emp1.id}>, 
name-<{$arr5.emp1.name}>, 
email-<{$arr5.emp1.email}>, 
url-<{$arr5.emp2.url}>, 
age-<{$arr5.emp2.age}><br/>

浏览器显示结果:

smarty模板引擎之分配数据类型

三、分配复合数据之对象

class Master{ 
  var $name; 
  var $age; 
  function __construct($name,$age){ 
    $this->name=$name; 
    $this->age=$age; 
  } 
} 
class Dog{ 
var $name; 
var $age; 
var $color; 
var $arr; 
var $master; 
function __construct($name,$age,$color,$arr6,$master){ 
  $this->name=$name; 
  $this->age=$age; 
  $this->color=$color; 
  $this->arr=$arr6; 
  $this->master=$master; 
  } 
} 
$arr6=array('001','002','003'); 
$master = new Master('小明',22); 
$dog1 = new Dog('小白',1,'white',$arr6,$master); 
$smarty->assign("dog",$dog1);

模板文件

对象:<br/> 
//基本属性 
name-<{$dog->name}>, 
age-<{$dog->age}>, 
color-<{$dog->color}> <br/> 
//数组属性 
arr-<{$dog->arr[0]}>, 
arr-<{$dog->arr[1]}>, 
arr-<{$dog->arr[2]}> <br/> 
//对象属性 
object-<{$dog->master->name}>, 
object-<{$dog->master->age}> <br/>

浏览器显示结果

smarty模板引擎之分配数据类型

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
Apr 24 PHP
php SQL Injection with MySQL
Feb 27 PHP
超小PHP小马小结(方便查找后门的朋友)
May 05 PHP
php shell超强免杀、减少体积工具实现代码
Oct 16 PHP
ThinkPHP缓存方法S()概述
Jun 13 PHP
利用PHP函数计算中英文字符串长度的方法
Nov 11 PHP
WordPress中限制非管理员用户在文章后只能评论一次
Dec 31 PHP
PHP购物车类Cart.class.php定义与用法示例
Jul 20 PHP
Netbeans 8.2与PHP相关的新特性介绍
Oct 08 PHP
PHP实现小偷程序实例
Oct 31 PHP
thinkphp5框架扩展redis类方法示例
May 06 PHP
php使用socket调用http和smtp协议实例小结
Jul 26 PHP
php生成不重复随机数、数组的4种方法分享
Mar 30 #PHP
smarty模板引擎基础知识入门
Mar 30 #PHP
php array_merge函数使用需要注意的一个问题
Mar 30 #PHP
PHP CodeIgniter框架的工作原理研究
Mar 30 #PHP
PHP实现动态柱状图改进版
Mar 30 #PHP
PHP动态柱状图实现方法
Mar 30 #PHP
php实现的一个简单json rpc框架实例
Mar 30 #PHP
You might like
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
2012/08/08 PHP
鸡肋的PHP单例模式应用详解
2013/06/03 PHP
php断点续传之如何分割合并文件
2014/03/22 PHP
php5.3以后的版本连接sqlserver2000的方法
2014/07/28 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
2019/05/06 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
javascript attachEvent和addEventListener使用方法
2009/03/19 Javascript
jQuery Select(单选) 模拟插件 V1.3.62 改进版
2010/07/17 Javascript
JQuery 图片的展开和伸缩实例讲解
2013/04/18 Javascript
禁用页面部分JavaScript方法的具体实现
2013/07/31 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
js实现图片无缝滚动
2015/12/23 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
什么是JavaScript中的结果值?
2016/10/08 Javascript
jquery实现数字输入框
2017/02/22 Javascript
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
关于webpack2和模块打包的新手指南(小结)
2017/08/07 Javascript
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
python中反射用法实例
2015/03/27 Python
python pyqtgraph 保存图片到本地的实例
2020/03/14 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
Django多个app urls配置代码实例
2020/11/26 Python
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
教育实习生的自我评价分享
2013/11/21 职场文书
英文商务邀请信
2014/01/22 职场文书
2013年军训通讯稿
2014/02/05 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
python爬取豆瓣电影TOP250数据
2021/05/23 Python
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android
【海涛七七解说】DCG第二周:DK VS 天禄
2022/04/01 DOTA
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技