变量的处理对于模板来说是比较重要的。

Smarty有几种不同类型的变量. 变量 的类型取决于它的前缀是什么符号(或者被什么符号包围)

Smarty的变量可以直接被输出或者作为函数属性和修饰符(modifiers)的参数,

或者用于内部的条件表达式等等. 如果要输出一个变量,只要用定界符将它括起来就可以。

{$Name}

{$Contacts[row].Phone}

<body bgcolor="{#bgcolor#}">

一.php分配的变量

调用从PHP分配的变量需在前加"$"符号。

调用模板内的assign函数分配的变量也是这样。

比如前面我们的代码

<?php
require_once 'smartyUser.php';
$usermodel=new smartyUser();
$usermodel->assign('name','dalong');
$usermodel->display('user.tpl');
?> {*smarty demo tempalates *}
hello ,{$name}!!!
{if $name=="dalong"}
you are the first one!!!
{else}
you are the last one
{/if}

使用$name 进行访问即可。

1.关联数组

测试代码如下:

<?php
require_once 'smartyUser.php';
$usermodel=new smartyUser();
$usermodel->assign('name','dalong');
$usermodel->assign('userinfo',array('username'=>'dalong','userage'=>20));
$usermodel->display('user.tpl');
?>

模板文件:

{*smarty demo tempalates *}
hello ,{$name}!!!
<br>
username,{$userinfo.username}
<br>
userage,{$userinfo.userage}
<br>
{if $name=="dalong"}
you are the first one!!!
{else}
you are the last one
{/if}

显示结果:

2.索引数组

<?php
require_once 'smartyUser.php';
$usermodel=new smartyUser();
$usermodel->assign('name','dalong');
$usermodel->assign('userinfo',array('username'=>'dalong','userage'=>20));
$usermodel->assign('namelist',array('dalong','lisi','zhangsan'));
$usermodel->display('user.tpl');
?>

模板文件:

{*smarty demo tempalates *}
hello ,{$name}!!!
<br>
username,{$userinfo.username}
<br>
userage,{$userinfo.userage}
<br>
firstname:{$namelist[0]}
<br>
{if $name=="dalong"}
you are the first one!!!
{else}
you are the last one
{/if}

测试结果:

3.对象

进行测试使用的简单对象

<?php
class user
{
var $username;
var $userage;
}
?> <?php
require_once 'smartyUser.php';
require_once 'user.php';
$usermodel=new smartyUser();
$usermodel->assign('name','dalong');
$usermodel->assign('userinfo',array('username'=>'dalong','userage'=>20));
$user=new user();
$user->userage=555;
$user->username='dalong';
$usermodel->assign('userobject',$user);
$usermodel->assign('namelist',array('dalong','lisi','zhangsan'));
$usermodel->display('user.tpl');
?> 模板文件使用: {*smarty demo tempalates *}
hello ,{$name}!!!
<br>
username,{$userinfo.username}
<br>
userage,{$userinfo.userage}
<br>
firstname:{$namelist[0]}
<br>
userobject demo info
<br>
userage={$userobject->userage}
<br>
username={$userobject->username}
<br>
{if $name=="dalong"}
you are the first one!!!
{else}
you are the last one
{/if}

测试结果:

二.配置文件信息;

配置文件中的变量需要通过用两个"#"或者是smarty的保留变量 $smarty.config.来调用(下节将讲到)

第二种语法在变量作为属性值并被引号括住的时候非常有用.

(举个例子

{include file="#includefile#"}

这样#includefile#将被当作字符处理,而不表示配置文件变量,

但可以这样表示

{include file="`$smarty.config.includefile`"}

不要忘了加``)

测试代码如下:

userinfo.conf:

userinfoname="dalong"
userinfoage=33333 conf.tpl: {config_load file="userinfo.conf"}
use #
<br>
username={#userinfoname#}
<br>
userage={#userinfoage#}
<br>
use ***$smarty.config****
<br>
username:{$smarty.config.userinfoname}
<br>
userage:{$smarty.config.userinfoage} php : <?php
require_once 'smartyUser.php';
require_once 'user.php';
$usermodel=new smartyUser();
$usermodel->assign('name','dalong');
$usermodel->assign('userinfo',array('username'=>'dalong','userage'=>20));
$user=new user();
$user->userage=555;
$user->username='dalong';
$usermodel->assign('userobject',$user);
$usermodel->assign('namelist',array('dalong','lisi','zhangsan'));
$usermodel->display('conf.tpl');
?>

三.

{$smarty}

保留变量

{$smarty}

保留变量可以被用于访问一些特殊的模板变量.

以下是全部列表:

1.request 变量

 $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV and $_SESSION等

{* display value of page from URL (GET) http://www.domain.com/index.php?page=foo *}

{$smarty.get.page}

{* display the variable "page" from a form (POST) *}

{$smarty.post.page}

{* display the value of the cookie "username" *}

{$smarty.cookies.username}

{* display the server variable "SERVER_NAME" *}

{$smarty.server.SERVER_NAME}

{* display the system environment variable "PATH" *}

{$smarty.env.PATH} 

{* display the php session variable "id" *}

{$smarty.session.id}

{* display the variable "username" from merged get/post/cookies/server/env *}

{$smarty.request.username}

2.$smarty.now

{* use the date_format modifier to show current date and time *}

{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}

3.$smart.const

{$smarty.const._MY_CONST_VAL}

4.$smarty.capture

5.$smarty.config

6.$smarty.section

7.$smarty.foreach

8.$smarty.template

smarty学习——变量的更多相关文章

  1. smarty学习——变量调节器(过滤器)

    变量调节器用于变量,自定义函数和字符串. 请使用 | 符号和调节器名称应用调节器.变量调节器由赋予的参数值决定其行为.参数由:符号分开. 比如进行大写转换的: upper demo: <br&g ...

  2. Smarty学习笔记(一)

    1.Smarty的配置: 将lib的内容复制到自己的工程,然后引入 实例化和配置Smarty基本属性: $smarty = new Smarty(); $smarty->left_delimit ...

  3. $smarty获取变量get,post等用法

    {$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间邮戳.直接访问PHP ...

  4. Smarty 保留变量

    {$smarty} 保留变量 可以通过PHP的保留变量 {$smarty}来访问一些环境变量. 下面是这些变量的列表: 页面请求变量 页面请求变量如$_GET, $_POST, $_COOKIE, $ ...

  5. Smarty模板变量调节器

    Smarty模板变量调节器用法 在smarty里面,怎么修饰文本和变量呢?当然,你可以通过php函数处理文本,然后再通过assign()方法分配到模板,其实smarty提供了变量调节器能够很容易的处理 ...

  6. 7. 由一道ctf学习变量覆盖漏洞

    0×00 背景 近期在研究学习变量覆盖漏洞的问题,于是就把之前学习的和近期看到的CTF题目中有关变量覆盖的题目结合下进一步研究. 通常将可以用自定义的参数值替换原有变量值的情况称为变量覆盖漏洞.经常导 ...

  7. smarty 学习记录

    smarty模版是比较大众化的一个模版,在php开发过程当中被很多开发者视为最友好的模版之一,学习smarty课程对于很多培训机构来说也是列入了培训课程之一,那么很多方面就需要我们学习了一. 安装首先 ...

  8. smarty学习——基本概念

    学习一种框架,我们最基本的就是掌握框架的思想,同时了解框架的基本语法. 1.对于定界符的了解 有的smarty模板标签都被加上了定界符. 默认情况下是 { 和},但它们是可被改变的.例如,我们假定你在 ...

  9. MVC架构学习之Smarty学习——病来而蔫

    前两天是五一小长假,而每次假期都想着如何如何刻苦一番,往往是自作多情.. 当然这次是有小病在身,多个借口吧. 一有病就蔫的不行...要锻炼了啊,脚估计也差不多了,游泳试试吧这周. 这次学习Smarty ...

随机推荐

  1. hdu5730 分治fft

    题意:\(dp[n]=\sum_{i=1}^ndp[i]*a[n-i]+a[n]\),求dp[n], 题解:分治fft裸题,就是用cdq分治加速fft,因为后面的需要用到前面的dp来算,不可能每次都f ...

  2. MFC中format函数用法

    本文转载于:http://blog.csdn.net/sunxc123/article/details/7742982 在MFC程序中,使用CString来处理字符串是一个很不错的选择.CString ...

  3. 在EO中对数据的重复性进行验证

    只有在数据提交到EO中的时候才会执行set方法进行验证. 如果想要实现实时验证,可以在输入参数的地方添加事件,但是无需为此事件创建方法. 我的理解: 1.我们在页面上对内容进行修改的时候,OAF框架仅 ...

  4. 使用路径arc-奥运五环

    <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>    < ...

  5. css 设置背景色

    设置背景图 background:url($!{rc.contextPath}/assets/images/bady/date.png)repeat 50px center background:ur ...

  6. SQL Server 调优系列进阶篇 - 如何重建数据库索引

    随着数据的数据量的急剧增加,数据库的性能也会明显的有些缓慢这个时候你可以考虑下重建索引或是重新组织索引了. DBCC SHOWCONTIG('表名') 可以查看当前表的索引碎情况. 重建索引 方法一: ...

  7. 快速切题 sgu103. Traffic Lights 最短路 难度:1

    103. Traffic Lights Time limit per test: 0.25 second(s)Memory limit: 4096 kilobytes input: standardo ...

  8. java web中的多条件查询

    转自:http://blog.csdn.net/xulu_258/article/details/46623317 所谓多条件查询即为用户输入想要查询的条件,然后根据用户输入的条件进行查询. 当用户有 ...

  9. DevExpress v17.2新版亮点——Data Access

    用户界面套包DevExpress v17.2日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了Data Access v17.2 的新功能,快来下载试用新版本! 新的API可在 ...

  10. float、clear、overflow

    浮动: float:  none|left|right 作用使得标签失去块级标签的独占一行效果,向某个方向靠拢 标签浮动了,也需要占地方,有时候出现未浮动的div覆盖部分浮动div是浏览器的bug情况 ...