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 加密与解密的斗争
Apr 17 PHP
PHP 高级课程笔记 面向对象
Jun 21 PHP
PHP UTF8编码内的繁简转换类
Jul 20 PHP
php strstr查找字符串中是否包含某些字符的查找函数
Jun 03 PHP
php并发对MYSQL造成压力的解决方法
Feb 21 PHP
php 5.6版本中编写一个PHP扩展的简单示例
Jan 20 PHP
php通过两层过滤获取留言内容的方法
Jul 11 PHP
php封装的mysqli类完整实例
Oct 18 PHP
php利用imagemagick实现复古老照片效果实例
Feb 16 PHP
PHP中时间加减函数strtotime用法分析
Apr 26 PHP
PHP中的日期时间处理利器实例(Carbon)
Jun 09 PHP
Laravel框架路由管理简单示例
May 07 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目录导航文件代码
2006/10/09 PHP
PHP迅雷、快车、旋风下载专用链转换代码
2010/06/15 PHP
防止本地用户用fsockopen DDOS攻击对策
2011/11/02 PHP
PHP return语句的另一个作用
2014/07/30 PHP
PHP实现ftp上传文件示例
2014/08/21 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
2020/10/28 PHP
div+css布局的图片连续滚动js实现代码
2010/05/04 Javascript
JavaScript学习笔记记录我的旅程
2012/05/23 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
用JavaScript实现使用鼠标画线的示例代码
2014/08/19 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
详解Layer弹出层样式
2017/08/21 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
JavaScript数组,JSON对象实现动态添加、修改、删除功能示例
2018/05/26 Javascript
vue.js+element-ui动态配置菜单的实例
2018/09/07 Javascript
微信小程序实现蒙版弹窗效果
2018/11/01 Javascript
vuex vue简单使用知识点总结
2019/08/29 Javascript
vue路由传参的基本实现方式小结【三种方式】
2020/02/05 Javascript
Python中实现对list做减法操作介绍
2015/01/09 Python
详解Python中break语句的用法
2015/05/14 Python
Python中pandas dataframe删除一行或一列:drop函数详解
2018/07/03 Python
Python3 修改默认环境的方法
2019/02/16 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
python 实现音频叠加的示例
2020/10/29 Python
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
Tahari ASL官方网站:高级设计师女装
2021/03/15 全球购物
电力培训心得体会
2014/09/02 职场文书
办公室务虚会发言材料
2014/10/20 职场文书
2014年教育实习工作总结
2014/11/22 职场文书
家长评语怎么写
2014/12/30 职场文书
酒店员工辞职信范文
2015/02/28 职场文书