您的位置:首页 > 其它

smarty3.0高级应用---数据对象和注册对象

2014-06-17 00:00 190 查看
摘要: 高级应用中的数据对象.

数据对象

应用情景:

在通常某些首页网站,由于内容比较多,为了便于页面加载和后期网站的维护,可以讲一整篇的html分为几个模块来调用

<?php
require "mySmarty.class.php";
$smarty = new mySmarty;
$headdata=$smarty ->createData();//创建数据对象
$headdata->assign("data","头部");//向数据对象中放入数据
$footdata = $smarty->createData();//创建另一个数据对象
$footdata->assign("data","尾部");//想数据对象中放入数据

$smarty ->display('head.html',$headdata);将数据对象放入到想对应的html模块中
$smarty ->display('foot.html',$footdata);将数据对象放入到相应的html模块中


注册对象

注册对象的主要作用,是现在对象在摸板中访问方法

如下:

require "mySmarty.class.php";
$mysmarty = new mySmarty;

class dog{
public static $name ="huanhuan";
public static  $age  ="28";

public function say(){
echo "wangwang!!!!!";
}
public static function introduce(){
echo "我的名字是",self::$name."<br/>";
echo "我的年龄是",self::$age."<br/>";
}
public  function introduceTwo(){
echo "我的名字是",$this->name."<br/>";
echo "我的年龄是",$this->age."<br/>";
}
}
$dog  = new dog;

//注册对象
$mysmarty->registerObject("chongwu",$dog,array('say','introduceTwo'));
$mysmarty->display('regis.html');

registerObject('模板对象变量名',对象,array('方法1','方法2'....))

方法可以使普通公开方法,也可以是静态方法,但是不能为私有或者protected 和abstract方法

除了在array中定义的方法,在模板中对象不能访问其他方法

在模板中,通过注册对象来调用方法的方式跟普通对象调用方法有区别

调用方式:

&n
3ff0
bsp; {chongwu->方法名} 静态方法调用方法跟普通方法一样

该注册对象方法,只是正对方法,不关心对象,在模板中 对象时访问不了属性的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: