smarty变量主要分为分配变量、配置文件变量和smarty保留变量,通过代码对三种变量的使用方法进行演示
1、分配变量
php文件代码
//分配变量
//注入普通变量
$_title="Smarty模板引擎变量";
$_smarty->assign("name",'LEE');
$_smarty->assign("title",$_title);
//注入数组变量
//索引数组
$_array=array('张三','李四','王五','小明','小红');
$_smarty->assign('array',$_array);
//关联数组
//下标不要使用中文
$_array2=array('name1'=>'张三','name1'=>'李四','name2'=>'王五','name3'=>'小明','name4'=>'小红');
$_smarty->assign('array2',$_array2);
//二维数组
$_array3=array(
array('张三','李四','王五','小明','小红'),
array('一班','二班','三班','四班','五班')
);
$_smarty->assign('array3',$_array3);
//二维关联数组
$_array4=array(
'name'=>array('张三','李四','王五','小明','小红'),
'class'=>array('一班','二班','三班','四班','五班')
);
$_smarty->assign('array4',$_array4);
//对象
class Computer{
public $_name='张三';
public function _run(){
return '运行中';
}
}
$_smarty->assign('computer',new Computer());
//数值变量运算
$_smarty->assign('x',10);
$_smarty->assign('y',20);
模板文件取值代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{$title}</title>
</head>
<body>
普通变量:{$name}<br />
索引数组:{$array[0]}<br />
<!--关联数组的取值通过变量名.下标-->
关联数组:{$array2.name1}<br />
二维数组:{$array3[0][2]}<br />
二维关联数组{$array4.name[3]}<br />
对象:{$computer->_name}<br />
{$computer->_run()}<br />
数值变量运算:{$x+$y}
</body>
</html>
2、配置文件变量
配置文件变量,从配置文件分配的变量到模板文件里以键值对的方式存储需要在模板文件中引入配置文件。
在模板文件html标签之外引入配置文件
<!DOCTYPE html>
<!--在模板文件中引入配置文件-->
{config_load file='config.conf'}
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
在configs文件夹中新建config.conf文件用来存放配置文件变量
config.conf文件代码
webname='my web'
weburl='http://www.xxx.com'
在模板文件内进行取值
<!DOCTYPE html>
<!--在模板文件中引入配置文件-->
{config_load file='config.conf'}
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
使用配置文件变量两种使用方法:{$smarty.config.webname}或{#weburl#}
</body>
</html>
3、Smarty模板保留变量
Smarty保留变量:模板自带的变量可以取出get,post,session,cookie,常量等变量的值
例:取出常量值的方法先在php文件中定义常量
define(‘PI’,’3.1415926’);
不需要注入
在模板文件中调用
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
常量:{$smarty.const.PI}
</body>
</html>
取其它值的方法
例:取出以get形式发送的id的值
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
Smarty保留变量:{$smarty.get.id}以get形式发送的id的值
</body>
</html>