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代码
Feb 16 PHP
php将数据库中所有内容生成静态html文档的代码
Apr 12 PHP
对text数据类型不支持代码页转换 从: 1252 到: 936
Apr 23 PHP
Web程序工作原理详解
Dec 25 PHP
php数组生成html下拉列表的方法
Jul 20 PHP
学习php设计模式 php实现享元模式(flyweight)
Dec 07 PHP
thinkPHP中create方法与令牌验证实例浅析
Dec 08 PHP
PHP判断文件是否被引入的方法get_included_files用法示例
Nov 29 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
Aug 17 PHP
PHP中quotemeta()函数的用法讲解
Apr 04 PHP
阿里云服务器搭建Php+Apache运行环境的详细过程
May 15 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
Protoss热键控制
2020/03/14 星际争霸
Nginx服务器上安装并配置PHPMyAdmin的教程
2015/08/18 PHP
js常见表单应用技巧
2008/01/09 Javascript
豆瓣网的jquery代码实例
2008/06/15 Javascript
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
2011/01/27 Javascript
JS中showModalDialog 的使用解析
2013/04/17 Javascript
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
2016/06/27 Javascript
Nodejs中 npm常用命令详解
2016/07/04 NodeJs
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
浅谈Vue3 Composition API如何替换Vue Mixins
2020/04/29 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
[52:15]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS LGD-GAMING
2014/05/23 DOTA
[03:39]这就是刀塔,我们是冠军!燃情短片讲述我们的DOTA故事
2019/07/02 DOTA
详解Python的Lambda函数与排序
2016/10/25 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
浅谈Python中的bs4基础
2018/10/21 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
python实现批量修改服务器密码的方法
2019/08/13 Python
tensorflow 只恢复部分模型参数的实例
2020/01/06 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
使用Python画了一棵圣诞树的实例代码
2020/11/27 Python
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
会计专业毕业生自荐信范文
2013/12/20 职场文书
服务型党组织建设典型材料
2014/05/07 职场文书
入职担保书范文
2014/05/21 职场文书
乳制品整治工作方案
2014/05/29 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
杭州西湖英语导游词
2015/02/03 职场文书
佛光寺导游词
2015/02/10 职场文书
小学英语教学反思范文
2016/02/15 职场文书
《极主夫道》真人电影正式预告 定档6月3日上映
2022/04/05 日漫