Smarty变量用法详解


Posted in PHP onMay 11, 2016

本文实例讲述了Smarty变量用法。分享给大家供大家参考,具体如下:

1. 从PHP分配的变量

调用从PHP分配的变量需在前加"$"符号.(译注:同php一样)

调用模板内的assign函数分配的变量也是这样.(译注:也是用$加变量名来调用)

示例:

index.php:

$smarty = new Smarty;
$smarty->assign('firstname', 'Doug');
$smarty->assign('lastLoginDate', 'January11th, 2001');
$smarty->display('index.tpl');

index.tpl:

Hello {$firstname}, glad to see you couldmake it.
<p>
Your last login was on {$lastLoginDate}.

输出:

Hello Doug, glad to see you could make it.
<p>
Your last login was on January 11th, 2001.

2. 从配置文件读取的变量

配置文件中的变量需要通过用两个"#"或者是smarty的保留变量 $smarty.config.来调用(后面会讲到)

第二种语法在变量作为属性值并被引号括住的时候非常有用.

(译注:举个例子 {include file="#includefile#"} 这样#includefile#将被当作字符处理,而不表示配置文件变量,但可以这样表示{include file="`$smarty.config.includefile`"}不要忘了加``)

示例:

foo.conf:

pageTitle = "This is mine"
bodyBgColor = "#eeeeee"
tableBorderSize = "3"
tableBgColor = "#bbbbbb"
rowBgColor = "#cccccc"

index.tpl:

{config_load file="foo.conf"}
<html>
<title>{#pageTitle#}</title>
<body bgcolor="{#bodyBgColor#}">
<table border="{#tableBorderSize#}" bgcolor="{#tableBgColor#}">
<tr bgcolor="{#rowBgColor#}">
    <td>First</td>
    <td>Last</td>
    <td>Address</td>
</tr>
</table>
</body>
</html>

index.tpl:

{config_load file="foo.conf"}
<html>
<title>{$smarty.config.pageTitle}</title>
<body bgcolor="{$smarty.config.bodyBgColor}">
<table border="{$smarty.config.tableBorderSize}"bgcolor="{$smarty.config.tableBgColor}">
<tr bgcolor="{$smarty.config.rowBgColor}">
    <td>First</td>
    <td>Last</td>
    <td>Address</td>
</tr>
</table>
</body>
</html>

上述两种模板写法都输出:

<html>
<title>This is mine</title>
<body bgcolor="#eeeeee">
<table border="3" bgcolor="#bbbbbb">
<tr bgcolor="#cccccc">
    <td>First</td>
    <td>Last</td>
    <td>Address</td>
</tr>
</table>
</body>
</html>

配置文件的变量只有在它们被加载以后才能使用.

希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。

PHP 相关文章推荐
一周学会PHP(视频)Http下载
Dec 12 PHP
php SQL之where语句生成器
Mar 24 PHP
LotusPhp笔记之:基于ObjectUtil组件的使用分析
May 06 PHP
PHP截断标题且兼容utf8和gb2312编码
Sep 22 PHP
php define的第二个参数使用方法
Nov 04 PHP
php使用多个进程同时控制文件读写示例
Feb 28 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
Apr 08 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
Oct 14 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
Nov 05 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
Nov 25 PHP
php字符串操作针对负值的判断分析
Jul 28 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
基于PHP实现商品成交时发送短信功能
May 11 #PHP
Smarty环境配置与使用入门教程
May 11 #PHP
理解php依赖注入和控制反转
May 11 #PHP
php结合web uploader插件实现分片上传文件
May 10 #PHP
配置Nginx+PHP的正确思路与过程
May 10 #PHP
WordPress中设置Post Type自定义文章类型的实例教程
May 10 #PHP
php+MySQL实现登录时验证登录名和密码是否正确
May 10 #PHP
You might like
PHP实现手机归属地查询API接口实现代码
2012/08/27 PHP
php实现过滤UBB代码的类
2015/03/12 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
2016/03/23 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
PHP页面跳转实现延时跳转的方法
2016/12/10 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
2017/02/20 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
php post换行的方法
2020/02/03 PHP
XHTML下,JS浮动代码失效的问题
2009/11/12 Javascript
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
2010/11/11 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
2013/03/04 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
jqgrid 编辑添加功能详细解析
2013/11/08 Javascript
Jquery中扩展方法extend使用技巧
2014/08/24 Javascript
JavaScript入门系列之知识点总结
2016/03/24 Javascript
javascript实现日期三级联动下拉框选择菜单
2020/12/03 Javascript
Vue ​v-model相关知识总结
2021/01/28 Vue.js
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
[03:12]TI9战队档案 - Virtus Pro
2019/08/20 DOTA
Python3生成手写体数字方法
2018/01/30 Python
在Pycharm中调试Django项目程序的操作方法
2019/07/17 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
详解PyTorch手写数字识别(MNIST数据集)
2019/08/16 Python
Python tkinter布局与按钮间距设置方式
2020/03/04 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
python给list排序的简单方法
2020/12/10 Python
本科生导师推荐信范文
2014/05/18 职场文书
医院党员公开承诺书
2014/08/30 职场文书
优秀大学生事迹材料
2014/12/24 职场文书
委托书格式要求
2015/01/28 职场文书
工作能力自我评价2015
2015/03/05 职场文书
2015年学校总务处工作总结
2015/05/19 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书
2016党员学习《反对自由主义》心得体会
2016/01/22 职场文书
Android基于Fresco实现圆角和圆形图片
2022/04/01 Java/Android