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 接口类与抽象类的实际作用
Nov 26 PHP
析构函数与php的垃圾回收机制详解
Oct 28 PHP
php网站判断用户是否是手机访问的方法
Nov 01 PHP
PHP中Memcache操作类及用法实例
Dec 12 PHP
php+ajax实现无刷新的新闻留言系统
Dec 21 PHP
thinkPHP3.1验证码的简单实现方法
Apr 22 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
Laravel学习教程之从入口到输出过程详解
Aug 27 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
Laravel5.7框架安装与使用学习笔记图文详解
Apr 02 PHP
Thinkphp5.0框架视图view的循环标签用法示例
Oct 12 PHP
PHP设计模式入门之状态模式原理与实现方法分析
Apr 26 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中邮箱地址正则表达式实现与详解
2012/04/24 PHP
PHP分多步骤填写发布信息的简单方法实例代码
2012/09/23 PHP
PHP flock 文件锁详细介绍
2012/12/29 PHP
discuz目录文件资料汇总
2014/12/30 PHP
php删除文本文件中重复行的方法
2015/04/28 PHP
PHP代码维护,重构变困难的4种原因分析
2016/01/25 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
图片之间的切换
2006/06/26 Javascript
javascript与CSS复习(二)
2010/06/29 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
2013/02/25 Javascript
js中AppendChild与insertBefore的用法详细解析
2013/12/16 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
vue实现路由切换改变title功能
2019/05/28 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
2019/12/10 Javascript
python各种语言间时间的转化实现代码
2016/03/23 Python
Pycharm学习教程(5) Python快捷键相关设置
2017/05/03 Python
python3 flask实现文件上传功能
2020/03/20 Python
python爬虫之自制英汉字典
2019/06/24 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
python返回数组的索引实例
2019/11/28 Python
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
什么是Smart Navigation?
2016/07/03 面试题
见习期自我鉴定
2014/01/31 职场文书
机动车交通事故协议书
2015/01/29 职场文书
现役军人家属慰问信
2015/03/24 职场文书
2015学校年度工作总结
2015/05/11 职场文书
php7中停止php-fpm服务的方法详解
2021/05/09 PHP