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 相关文章推荐
第三节 定义一个类 [3]
Oct 09 PHP
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
Mar 15 PHP
php Undefined index和Undefined variable的解决方法
Mar 27 PHP
使用php来实现网络服务
Sep 15 PHP
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
Jun 02 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
Jan 14 PHP
PHP中常用的输出函数总结
Sep 22 PHP
php备份数据库类分享
Apr 14 PHP
谈谈 PHP7新增功能
Dec 16 PHP
PHP使用Mysqli类库实现完美分页效果的方法
Apr 07 PHP
解决laravel 表单提交-POST 异常的问题
Oct 15 PHP
详解no input file specified 三种解决方法
Nov 29 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实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
PHP编程风格规范分享
2014/01/15 PHP
php+Mysqli利用事务处理转账问题实例
2015/02/11 PHP
详解Yii2 rules 的验证规则
2016/12/02 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
数组方法解决JS字符串连接性能问题有争议
2011/01/12 Javascript
js 赋值包含单引号双引号问题的解决方法
2014/02/26 Javascript
javascript框架设计读书笔记之种子模块
2014/12/02 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
自制微信公众号一键排版工具
2016/09/22 Javascript
es6学习笔记之Async函数基本教程
2017/05/11 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
js中apply()和call()的区别与用法实例分析
2018/08/14 Javascript
微信小程序如何使用globalData的方法
2019/06/06 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
2019/12/25 Javascript
javascript 模块依赖管理的本质深入详解
2020/04/30 Javascript
[01:07:57]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第二场 1月19日
2021/03/11 DOTA
Python的设计模式编程入门指南
2015/04/02 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
Django中提示消息messages的设置方式
2019/11/15 Python
Python安装依赖(包)模块方法详解
2020/02/14 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
中国双语服务优势的在线购票及活动平台:247tickets
2018/10/26 全球购物
如何处理简单的PHP错误
2015/10/14 面试题
科室工作的个人自我评价
2013/10/30 职场文书
2014党员民主评议个人思想剖析发言
2014/09/19 职场文书
个人房屋转让协议书范本
2014/10/26 职场文书
Mysql 用户权限管理实现
2021/05/25 MySQL
Python中requests做接口测试的方法
2021/05/30 Python
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers