本文实例讲述了Smarty模板变量与调节器。分享给大家供大家参考,具体如下:
Smarty中assign说明
可能有人在学习smarty的时候已经学习了一些php框架,如tp、laravel、Yii等,这里拿tp框架的assign和smarty做一些比较。
$name=thinkphp; $this->assign('name',$name); $this->display();
$smarty=new Smarty(); $smarty->assign('name','smarty'); $smarty->display(index.tpl);
上面两段代码片分别是tp和smarty(千万别混淆tp和smarty,一个是开源的框架,一个是模板设计引擎)。
tp在视图模块调用是 {$name}{$name},等同于php里的, <?php echo($name);?>,smarty中是在index.tpl用{$name}调用。注意模板标签的{和$之间不能有任何的空格,否则标签无效。
数组变量
$smarty = new Smarty; $smarty->assign('smarty', array('name'=>'smarty' 'user' => 'sm'))); $smarty->display('index.tpl');
index.tpl
{$smarty.name}<br> {$smarty.user}<br>
<?php $smarty->assign('data', array( 'smarty', 'sm', )); $smarty->display('index.tpl'); ?>
index.tpl source:
{$Contacts[0]}<br /> {$Contacts[1]}<br />
在tp中的调用有两种方法,如下:
$data[name]='thinkphp'; $data[user]='tp'; $this->a``ssign('data',$data);
这里视图调用有两种方法:
Name:{$data.name} user:{$data.user}
name:{$data['name']} name:{$data['user']}
同理对象如下所示:
首先是smarty:
name: {$data->name}<br> user: {$data->user}<br>
tp:
$data->name='thinkphp'; $data->user='tp'; $this->assign('data',$data); $this->display();
也有两种调用方式:
name:{$data->name} user:{$data->user}
name:{$data:name} user:{$data:user}
smaty和thinkphp是不是有异曲同工之妙呢,所以我们学习框架之前学习smarty是很有帮助的。
变量调节器
为什么先讲调节器呢,因为我觉得这部分其一比较通俗简单,其二后面一些内容也会涉及到调节器的内容。按我的理解smarty的内置调节器就如同php里面内置函数一样起简化编程的作用。