Smarty中的变量

Smarty中变量分为三类

1、PHP分配的变量

index.php

require('./include.php');	//加载Smarty初始化

$smarty->assign('name','chuangrain');	//php分配的变量

$smarty->display('index.html');		//显示index.html
index.html

<{if $name == 'chuangrain'}><{* Smarty中的函数、属性、注释*}>
hello,<{$name}>!
<{else}>
hello,world!
<{/if}>

如果是分配的数组和对象,也可以在smarty中访问

例:数组

$arr1 = array('赵','钱','孙',array('杨','孔'));

$arr2 = array(
	'zhou' => '周',
	'zhang' => '张',
	'wang' => '王',
	'li' => array(
		'chen' => '陈',
		'xiang' => '向',
	),
);

$smarty->assign('arr1',$arr1);
$smarty->assign('arr2',$arr2);


<{$arr1.0}>
<{$arr1[1]}>
<{$arr1.2}>
<{$arr1.3.0}>
<{$arr1.3[1]}>
<br>
<{$arr2.zhou}>
<{$arr2.zhang}>
<{$arr2.wang}>
<{$arr2.li.chen}>
<{$arr2.li.xiang}>
运行结果:

例:对象

class pic {
	public $height = '300px';
	public $width = '200px';
}

$p = new pic();

$smarty->assign('p',$p);

<{$p->height}>
<{$p->width}>
运行结果:300px 200px

2、配置文件中的变量

使用配置文件中的变量可以通过两个"#"或者smarty中的保留变量$smarty.config.来调用

info.conf

name = "chuangrain"
age = 20
address = "四川"
html

<{config_load file="info.conf"}><{* 加载配置文件中的info.conf *}>
name:<{#name#}><br><{* 不能将#name#写为"#name#",否则会当作字符串处理 *}>
age:<{"`$smarty.config.age`"}><br>
address:<{#address#}><br>
运行结果:

3、smarty保留的变量

    3.1、request变量

$smarty.get.变量名,可以获取url中变量的值(用得比较多)

$smarty.post.var     $smarty.cookies.var    $smarty.server.var    $smarty.env.var      $smarty.session.var       $smarty.request.var

    3.2、$smarty.now当前时间

<{$smarty.now}><{*返回当前时间的时间戳*}><br>
<{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}><{*格式化输出当前时间*}><br>
   运行结果: 

    3.3、$smarty.const.常量名

$smarty.const.常量名直接调用PHP中的常量名,不需要assign

define('CONST_STR','chuang');
<{$smarty.const.CONST_STR}>
运行结果:chuang
    3.4、$smarty.capture

1.html

<a href="#">aaaaaaaaaaaaaaaaaa</a>

<{capture name=str}>
<{include file="1.html"}>
<{/capture}>
<{if $smarty.capture.str}>
	<center><h1><{$smarty.capture.str}></h1><center>
<{/if}>
<{capture}><{/capture}>之间的内容会放到一个变量中去,name=“变量名”,默认为default
运行结果:

    3.5、$smarty.config.变量名

$smarty.config.变量名,可以获取配置文件中的变量的值,在 2 中已有使用

    3.6、$smarty.section       $smarty.foreach

用在section和foreach循环遍历中

    3.7、$smarty.template

返回本模板的文件名


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值