smarty学习——变量
变量的处理对于模板来说是比较重要的。
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学习——变量的更多相关文章
- smarty学习——变量调节器(过滤器)
变量调节器用于变量,自定义函数和字符串. 请使用 | 符号和调节器名称应用调节器.变量调节器由赋予的参数值决定其行为.参数由:符号分开. 比如进行大写转换的: upper demo: <br&g ...
- Smarty学习笔记(一)
1.Smarty的配置: 将lib的内容复制到自己的工程,然后引入 实例化和配置Smarty基本属性: $smarty = new Smarty(); $smarty->left_delimit ...
- $smarty获取变量get,post等用法
{$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间邮戳.直接访问PHP ...
- Smarty 保留变量
{$smarty} 保留变量 可以通过PHP的保留变量 {$smarty}来访问一些环境变量. 下面是这些变量的列表: 页面请求变量 页面请求变量如$_GET, $_POST, $_COOKIE, $ ...
- Smarty模板变量调节器
Smarty模板变量调节器用法 在smarty里面,怎么修饰文本和变量呢?当然,你可以通过php函数处理文本,然后再通过assign()方法分配到模板,其实smarty提供了变量调节器能够很容易的处理 ...
- 7. 由一道ctf学习变量覆盖漏洞
0×00 背景 近期在研究学习变量覆盖漏洞的问题,于是就把之前学习的和近期看到的CTF题目中有关变量覆盖的题目结合下进一步研究. 通常将可以用自定义的参数值替换原有变量值的情况称为变量覆盖漏洞.经常导 ...
- smarty 学习记录
smarty模版是比较大众化的一个模版,在php开发过程当中被很多开发者视为最友好的模版之一,学习smarty课程对于很多培训机构来说也是列入了培训课程之一,那么很多方面就需要我们学习了一. 安装首先 ...
- smarty学习——基本概念
学习一种框架,我们最基本的就是掌握框架的思想,同时了解框架的基本语法. 1.对于定界符的了解 有的smarty模板标签都被加上了定界符. 默认情况下是 { 和},但它们是可被改变的.例如,我们假定你在 ...
- MVC架构学习之Smarty学习——病来而蔫
前两天是五一小长假,而每次假期都想着如何如何刻苦一番,往往是自作多情.. 当然这次是有小病在身,多个借口吧. 一有病就蔫的不行...要锻炼了啊,脚估计也差不多了,游泳试试吧这周. 这次学习Smarty ...
随机推荐
- spoj Help the Military Recruitment Office!
题意:给出名字和地方,地方会重定向,最后再给出名字,问现在属于哪里? 用并查集. //#pragma comment(linker,"/STACK:1024000000,1024000000 ...
- Tomcat报错Exception: java.lang.OutOfMemoryError
进入Tomcat中的/bin/catalina.sh 在catalina.sh中echo"Using CATALINA_BASE"之前的一行添加如下代码: JAVA_OPTS=&q ...
- thinkphp数组处理
1.array_unique() 移除数组中的重复的值,并返回结果数组.当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除,对每个值只保留第一个遇到的键名,接着忽略所有后面的键名.返回的数组 ...
- SQL优化(SQL TUNING)可大幅提升性能的实战技巧之一——让计划沿着索引跑
我们进行SQL优化时,经常会碰到对大量数据集进行排序,然后从排序后的集合取前部分结果的需求,这种情况下,当我们按照常规思路去写SQL时,系统会先读取过滤获得所有集合,然后进行排序,再从排序结果取出极少 ...
- 深入理解BootStrap Item1-- 列表组(list-group)
class=”pull-right”:右对齐下拉菜单 list-group-item:列表组,控制列表,以及添加列表徽章 1.列表组 列表组是Bootstrap框架新增的一个组件,可以用来制作列表清单 ...
- sql Server中临时表与数据表的区别
sql server 中临时表与数据表的区别 1.如何判断临时表和数据表已生成 --如何判断临时表是否已创建--- if exists(select * from tempdb..sysobjects ...
- Filesystem has been set read-only problem.
case: when system is running well ,sudden tf became read-only; analyze: read the kernel log using dm ...
- 2.strcpy使用注意(2)
分析下述代码: void test2() { char string[10],str1[10]; int i; for(i=0;i<10;i++) { srtr1='a'; } strcpy(s ...
- oracleXE默认的管理员登录用户
管理员: account:sys@XE as sysdba pwd:sys sys@XE as sysdba system
- jquery ajax和php实现返回值 json类型
js页面 $.ajax({ type: “POST”, dataType: ‘json’, url: “add_vote.php”, data: “touid=”+uid+”&touserna ...