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 str_replace的替换漏洞
Mar 15 PHP
解析php中call_user_func_array的作用
Jun 07 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
Jun 25 PHP
yii的CURD操作实例详解
Dec 04 PHP
浅谈PHP的反射机制
Dec 15 PHP
php实现遍历文件夹的方法汇总
Mar 02 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
Oct 23 PHP
浅析php如何实现爬取数据原理
Sep 27 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
Jul 24 PHP
Yii框架视图、视图布局、视图数据块操作示例
Oct 14 PHP
关于laravel 日志写入失败问题汇总
Oct 17 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 高性能书写
2010/12/11 PHP
php字符串函数学习之strstr()
2015/03/27 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
浅谈PHP表单提交(POST&amp;GET&amp;URL编/解码)
2017/04/03 PHP
PHP后台实现微信小程序登录
2018/08/03 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
JQuery 操作Javascript对象和数组的工具函数小结
2010/01/22 Javascript
JavaScript Event学习第六章 事件的访问
2010/02/07 Javascript
javascript采用数组实现tab菜单切换效果
2012/12/12 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
JavaScript的各种常见函数定义方法
2014/09/16 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
2015/11/26 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
基于jQuery实现点击列表加载更多效果
2016/05/31 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
bootstrap网格系统使用方法解析
2017/01/13 Javascript
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
一个简单的node.js界面实现方法
2018/06/01 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
javascript 函数的暂停和恢复实例详解
2020/04/25 Javascript
详细解析Python中的变量的数据类型
2015/05/13 Python
Python模拟用户登录验证
2017/09/11 Python
python通过opencv实现批量剪切图片
2017/11/13 Python
Python单元测试unittest的具体使用示例
2018/12/17 Python
python将视频转换为全字符视频
2019/04/26 Python
Python3批量移动指定文件到指定文件夹方法示例
2019/09/02 Python
python实现读取类别频数数据画水平条形图案例
2020/04/24 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
python list的index()和find()的实现
2020/11/16 Python
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
德国网上花店:Valentins
2018/08/15 全球购物
大学生个人总结范文
2015/02/15 职场文书
2015年电话销售工作总结范文
2015/04/20 职场文书
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript