我们接着上次的内容讲解,首先这次把smarty定界符改了:
$tpl->left_delimiter = "<!--{";//左定界符 
$tpl->right_delimiter = "}-->";//右定界符
2.变量
下面是通过php赋值(assign)方式分配值:
1.)简单变量
通过$smarty->assign('name','xcf007');
分配的变量,在模板里面我们可以像php中那样调用
如<!--{$name}-->
2.)数组
这是简单的变量形式,下面看看数组的:
关键代码部分
chap2.php: 
$tpl->assign('me',array('xcf007','山东威海',26));
模板chap2.tpl(注意模板后缀任意,习惯用tpl你也可以用html等):
我的名字是<!--{$me[0]}-->,我来自<!--{$me[1]}-->,本人年龄<!--{$me[2]}-->.
再看看关联数组的:
php部分:
$tpl->assign('me',array('name'=>'xcf007','city'=>'山东威海','age'=>26));
模板部分:
我的名字是<!--{$me.name}-->,我来自<!--{$me.city}-->,本人年龄<!--{$me.age}-->.
注意关联数组的引用方式,用的点.符号。
对于嵌套的数组道理一样,类似$me.name.firstname这个样子。
3.)对象
chap2.php,简单的一段代码,属性公开:
class Person 

 public $name; 
 public $city; 
 public $age; 
    
 function __construct($name,$city,$age) 
 { 
    $this->name=$name; 
    $this->city=$city; 
    $this->age=$age; 
 } 

 
$me=new Person('xcf007','山东威海',26); 
$tpl->assign('me',$me); 
 

模板chap2.tpl:
我的名字是<!--{$me->name}-->,我来自<!--{$me->city}-->,本人年龄<!--{$me->age}-->.
注意对象访问操作符,这里是->
下面我们看看如何从配置文件获取值:
chap2.php: 
 
<?php 
require_once("inc/smarty.inc.php");//引入smarty 
 
$tpl->assign('title',"读取配置文件变量"); 
 
$tpl->display('chap2.tpl'); 
 
?> 
在configs文件夹下建立menu.conf文件:
[chinese] 
home = "首页" 
introduction = "公司介绍" 
contact = "联系我们" 
 
[english] 
home = "Home" 
introduction = "Introduction" 
contact = "Contact Us" 
模板文件chap2.tpl:
<!--{config_load file="menu.conf" section="chinese"}--> 
<html> 
<head><title><!--{$title}--></title></head> 
<body> 
 <p><a href="#"><!--{#home#}--></a> | <a href="#"><!--{$smarty.config.introduction}--></a> | <a href="#"><!--{#contact#}--></a></p> 
</body> 
</html>
通过config_load的smarty模板函数加载配置文件menu.conf,里面的chinese部分(就是中文菜单啦)
如果加载英文的可以,<!--{config_load file="menu.conf" section="english"}-->
模板变量引用方式可以用#变量名字#方式,也可以$smarty保留变量的方式就是$smarty.config.变量名字的方式,各有特色。
##方式简单些,但有时出在引号里面时,就得考虑用保留变量方式了。
待续...

 
 本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/157705,如需转载请自行联系原作者

smarty教程系列2-section2相关推荐

  1. smarty教程系列2--section1

    第二课 smarty基本语法(1) 好了有了上一节课的安装,这节课我们看看smarty的基本语法 我们知道smarty是为了把php和美工制作的模板部分尽量做到分离,这样程序做程序时可以不必等到美工的 ...

  2. Smarty教程[7]

    一.如何得到ADODB? 它的运行环境是什么? 从http://adodb.sourceforge.net/上下载. 二.如何安装ADODB? 解压下载回的压缩文件,注意:大家下载回来的格式为ADOD ...

  3. Smarty中文手册,Smarty教程,Smarty模板的入门教材

    Smarty中文手册,Smarty教程,Smarty模板的入门教材 首先,这份Smarty中文手册的翻译工作是由喜悦国际村村民自发组织的,不代表任何人的意见和观点.对他们的无私奉献精神,我们表示感谢, ...

  4. python平稳性检验_时间序列预测基础教程系列(14)_如何判断时间序列数据是否是平稳的(Python)...

    时间序列预测基础教程系列(14)_如何判断时间序列数据是否是平稳的(Python) 发布时间:2019-01-10 00:02, 浏览次数:620 , 标签: Python 导读: 本文介绍了数据平稳 ...

  5. PowerDesigner教程系列(总)

    目标: 本文主要介绍PowerDesigner中概念数据模型 CDM的基本概念. 一.概念数据模型概述 数据模型是现实世界中数据特征的抽象.数据模型应该满足三个方面的要求: 1)能够比较真实地模拟现实 ...

  6. 【冰极峰教程系列之二】:牢不可破的九宫格布局

    原创:冰极峰 转载请注明出处 时间:2009年6月22日 8:40:16 冰极峰教程系列之一:九宫格基本布局 冰极峰教程系列之二:牢不可破的九宫格布局 冰极峰教程系列之三:三层分离的完美九宫格 冰极峰 ...

  7. 智能合约语言 Solidity 教程系列9 - 错误处理

    这是Solidity教程系列文章第9篇介绍Solidity 错误处理. Solidity系列完整的文章列表请查看分类-Solidity. 写在前面 Solidity 是以太坊智能合约编程语言,阅读本文 ...

  8. 在ASP.NET 2.0中操作数据教程系列

    在ASP.NET 2.0中操作数据教程系列 Scott Mitchell最近完成了为 www.asp.net 网站撰写的<在ASP.NET 2.0中操作数据 (Working with Data ...

  9. ttlsa教程系列之MySQL---MySQL/Galera集群-多主高可用性负载均衡

    为什么80%的码农都做不了架构师?>>>    ttlsa教程系列之MySQL ---- MySQL/Galera集群-多主高可用性负载均衡 Percona和MariaDB发布版本中 ...

最新文章

  1. 再谈浏览器兼容性测试
  2. 批量启用lync用户-3
  3. php某列为键数组为值,PHP 将二维数组中某列值作为数组的键名 -- 超实用
  4. 自考进行时--2018.10.21
  5. 常见的10道Web前端面试题及答案分享!
  6. union-find算法分析(1)
  7. 干货|机器学习零基础?不要怕,吴恩达课程笔记第三周!逻辑回归与正则
  8. Java 8中的可重复注释
  9. fedora操作系统优缺点_不同类型的操作系统的优缺点
  10. bzoj3594 [Scoi2014]方伯伯的玉米田
  11. 三阶汉诺塔java源代码_如何使用Java实现汉诺塔问题求解
  12. mysql集群session_集群session解决方案
  13. c语言开发unity,[Unity3D]U3D开发项目总结
  14. [BZOJ 3561] DZY Loves Math VI
  15. [BZOJ2959] 长跑
  16. 伊甸园日历游戏 飘飘乎居士拯救MM(tyvj 1968 1140)
  17. 苹果开发 笔记(69)SVProgressHUD
  18. 微信企业号 sdk java_基于Java spring框架的微信企业号开发中关于js-sdk的配置
  19. (已修正精度 1mm左右)Realsense d435i深度相机+Aruco+棋盘格+OpenCV手眼标定全过程记录
  20. Android Studio之高德地图实现定位和3D地图显示

热门文章

  1. php二次开发知识,Discuz!二次开发基本知识
  2. MySql不保存空缺名次排名
  3. Array 和 List 的转换问题
  4. WPF Textbox自动换行
  5. NC集成旺店通使用JSONObject获取数据
  6. problem 1171
  7. 数据库连接池学习笔记(一):原理介绍+常用连接池介绍
  8. 精益生产管理如何让全体员工养成消除浪费和持续改进意识?
  9. matlab无约束最优化的一般算法流程图及代码(进退法,Fibonacci,黄金分割法,抛物线法)
  10. java value of_Java 中的valueOf()方法