版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Tacks/article/details/85054689
在模板中,我们知道通过{$var}的方式来直接显示从php传过去的值,那么在模板显示的标签变量的来源到底有哪几种方法?
一.从PHP脚本中赋值过去
①直接利用assign方法 赋值字符串
php页面
//字符串变量赋值
$smarty->assign('title','smarty3');
模板页面直接利用{$title}即可获取
②利用assign方法赋值 数组
//常规方法
$user1 = array('name'=>'刘备','age'=>'20','weapon'=>'双刀');
$smarty->assign('user1',$user1);
//也可以直接赋值
$user2 = array('key'=>'Tacks','value'=>'王小虫');
$smarty->assign($user2);
//这样就直接相当于
//$smarty->assign('key','Tacks')
//$smarty->assign('value','王小虫')
-数组 利用$user['name']访问
姓名:{$user1['name']}
年龄:{$user1['age']}
武器:{$user1['weapon']}
-数组 利用$user.name 访问
姓名:{$user1.name}
年龄:{$user1.age}
武器:{$user1.weapon}
-数字 直接利用把键名当成变量名
{$key}:{$value}
③利用 append方法追加进去数组
//append()把值追加到数组
$smarty->append('user2','Mr.wang');
$smarty->append('user2','王先生');
{$user2.0}:{$user2.1}
二.smarty的系统保留变量
例如get 和post的值,可以直接根据{$smarty.get.id},还有其他很多系统变量。
//例如get的值,以$smarty.开头的标签,当成系统变量来解析
//如{$smarty.get.id} 会解析成<?php echo $_GET['id'] ;?>
id变量 {$smarty.get.id}
三.Smarty的配置文件里面的键值对
有些数据,比如内容底部的电话信息,不想从数据库读取,可以直接写到配置文件里,模板可以读出配置文件。
三步走:
①设置配置文件的目录
//从配置文件读取变量 设置配置文件目录
$smarty->config_dir = './config/';
②向配置文件写入数据
一般配置文件是以.conf为后缀,然后里面是以键=值的方式书写例如
name=smarty3
value=配置文件读取变量
③在模板中使用配置文件的变量
配置变量必须先载入配置文件才能使用,这个配置文件引入的时候是以配置文件目录相对下的set.conf。\
可以用{$smarty.config.var} 或者 {#var#}方式
{config_load file='set.conf'}
方法一获取
name配置 {$smarty.config.name}
value配置 {$smarty.config.value}
方法二获取
name配置{#name#}
value配置{#value#}