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 相关文章推荐
人大复印资料处理程序_补充篇
Oct 09 PHP
Php中文件下载功能实现超详细流程分析
Jun 13 PHP
div li的多行多列 无刷新分页示例代码
Oct 16 PHP
使用淘宝IP库获取用户ip地理位置
Oct 27 PHP
sae使用smarty模板的方法
Dec 17 PHP
php时区转换转换函数
Jan 07 PHP
mac环境中使用brew安装php5.5.15
Aug 18 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
Jan 28 PHP
功能强大的php文件上传类
Aug 29 PHP
[原创]PHP获取数组表示的路径方法分析【数组转字符串】
Sep 01 PHP
基于php流程控制语句和循环控制语句(讲解)
Oct 23 PHP
Laravel创建数据库表结构的例子
Oct 09 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
建立动态的WML站点(二)
2006/10/09 PHP
PHP 得到根目录的 __FILE__ 常量
2008/07/23 PHP
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
codeigniter数据库操作函数汇总
2014/06/12 PHP
php编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
基于JavaScript实现移除(删除)数组中指定元素
2016/01/04 Javascript
Javascript中神奇的this
2016/01/20 Javascript
js实现多行文本框统计剩余字数功能
2017/03/28 Javascript
关于express与koa的使用对比详解
2018/01/25 Javascript
Vue+element-ui 实现表格的分页功能示例
2018/08/18 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
node.js实现http服务器与浏览器之间的内容缓存操作示例
2020/02/11 Javascript
js实现html滑动图片拼图验证
2020/06/24 Javascript
Vue中computed及watch区别实例解析
2020/08/01 Javascript
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python中的zipfile模块使用详解
2015/06/25 Python
Python实现批量读取word中表格信息的方法
2015/07/30 Python
Python制作爬虫抓取美女图
2016/01/20 Python
python虚拟环境virtualenv的使用教程
2017/10/20 Python
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
2018/05/30 Python
python中copy()与deepcopy()的区别小结
2018/08/03 Python
Python 200行代码实现一个滑动验证码过程详解
2019/07/11 Python
如何用python写个模板引擎
2021/01/14 Python
手机配件第一品牌:ZAGG
2017/05/28 全球购物
大学学年自我鉴定
2013/10/28 职场文书
国际经济贸易专业推荐信
2013/11/06 职场文书
食品安全承诺书
2014/05/22 职场文书
校园安全标语
2014/06/07 职场文书