Smarty 变量传递
Smarty的变量传递主要分为三种,值,数组,类。
这里总结一下Smarty传递变量的方式。
传递一个值
PHP端:
//传递一个值
$smarty->assign("hello", "你好");
TPL端:
<p>{$hello}</p>
传递数组
数组有非关联数组和关联数值两种。
PHP端:
//定义一个非关联数组
$teachers = array( "小王", "小李");
//定义一个关联数组
$courses = array( "item1" => "Smarty入门","item2"=>"Smarty基本语法");
//传递数值
$smarty->assign("courses", $courses);
$smarty->assign("teachers", $teachers);
TPL端:
<ul>
<li>课程1:{$courses.item1}教师:{$teachers[0]}</li>
<li>课程1:{$courses.item2}教师:{$teachers[1]}</li>
</ul>
同时,数组可以遍历:
{*循环teachers*}
<ul>
{foreach from=$teachers item=teacher}
<li>教师:{$teachers[0]}</li>
{/foreach}
</ul>
{*循环courses*}
<ul>
{foreach key=key item=value from=$courses}
<li>{$key}: {$value}</li>
{/foreach}
</ul>
传递类
有时我们需要将一个类传递到tpl进行信息显示。
PHP端:
/**
* 创建一个类
*/
class Teacher
{
public $name = "";
public $age = "";
public $sex_num = "";
function __construct($name, $age, $sex_num) {
$this->name=$name;
$this->age=$age;
$this->sex_num=$sex_num;
}
//用来判断并输出性别的方法
public function getSex()
{
if ($this->sex_num == "1") {
return "woman";
} else {
return "man";
}
}
}
//创建一个实例
$teacher1 = new Teacher("小王", 20, "1");
//传入
$smarty->assign("teacher", $teacher1);
TPL端:
<ul>
<li>{$teacher->name}</li> <!-- 小王 -->
<li>{$teacher->age}</li> <!-- 20 -->
<li>{$teacher->getSex()}</li> <!-- woman -->
</ul>
以上就是Smarty中传递和读取变量的方式。