smarty3.0高级应用---数据对象和注册对象
博客专区 > PHer 的博客 > 博客详情
smarty3.0高级应用---数据对象和注册对象
PHer 发表于4年前
smarty3.0高级应用---数据对象和注册对象
  • 发表于 4年前
  • 阅读 9
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: 高级应用中的数据对象.

数据对象

应用情景:

        在通常某些首页网站,由于内容比较多,为了便于页面加载和后期网站的维护,可以讲一整篇的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中定义的方法,在模板中对象不能访问其他方法

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

调用方式:

    {chongwu->方法名} 静态方法调用方法跟普通方法一样


该注册对象方法,只是正对方法,不关心对象,在模板中 对象时访问不了属性的

共有 人打赏支持
粉丝 3
博文 118
码字总数 38443
×
PHer
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: