Zend Framework入门教程之Zend_Registry组件用法详解

5年以前  |  阅读数:1101 次  |  编程语言:PHP 

本文实例讲述了Zend Framework中Zend_Registry组件用法。分享给大家供大家参考,具体如下:

1.对象注册表

入门案例:


    <?php
    require_once("Zend/Loader.php");
    Zend_Loader::loadClass('Zend_Registry');
    $member = array(
      "姓名"=>"张三",
      "性别"=>"女",
      "年龄"=>"13",
      "职业"=>"学生",
      "爱好"=>"玩游戏",
      "血型"=>"AB"
      );
    $registry = new Zend_Registry($member);
    echo "姓名为:";
    echo $registry["姓名"];
    echo "<p>";
    echo "性别为:";
    echo $registry["性别"];
    echo "<p>";
    echo "年龄为:";
    echo $registry["年龄"];
    echo "<p>";
    echo "职业为:";
    echo $registry["职业"];
    echo "<p>";
    echo "爱好为:";
    echo $registry["爱好"];
    echo "<p>";

结果为:


    姓名为:张三
    性别为:女
    年龄为:13
    职业为:学生
    爱好为:玩游戏

2.set()方法和get()方法设置数据、获取数据

语法:

设置值Zend_Registry::set('index','value')
获取值Zend_Registry::get('index')

案例:


    <?php
    require_once("Zend/Loader.php");
    Zend_Loader::loadClass('Zend_Registry');
    $member = array(
      "姓名"=>"张三",
      "性别"=>"女",
      "年龄"=>"13",
      "职业"=>"学生",
      "爱好"=>"玩游戏",
      "血型"=>"AB"
      );
    Zend_Registry::set("registry",$member);
    $registry = Zend_Registry::get("registry");
    echo "姓名为:";
    echo $registry["姓名"];
    echo "<p>";
    echo "性别为:";
    echo $registry["性别"];
    echo "<p>";
    echo "年龄为:";
    echo $registry["年龄"];
    echo "<p>";
    echo "职业为:";
    echo $registry["职业"];
    echo "<p>";
    echo "爱好为:";
    echo $registry["爱好"];
    echo "<p>";

说明:效果等同于new的结果。

3.对象注册表setInstance、getInstance

例子:


    <?php
    require_once("Zend/Loader.php");
    Zend_Loader::loadClass('Zend_Registry');
    $registry = new Zend_Registry();
    Zend_Registry::setInstance($registry);
    $registry->name = "Mike";
    $registry->age = "30";
    $registry = Zend_Registry::getInstance();
    echo $registry->name;
    echo "<p>";
    echo $registry->age;
    echo "<p>";
    $registry->sex = "male";
    echo $registry->sex;

结果:


    Mike
    30
    male

说明:通过setInstance方法,就可以用对象的方式设置其中的值了,然后通过getInstance来获取值。

4.isRegistered()来实现索引是否有值的判断。

案例:


    <?php
    require_once("Zend/Loader.php");
    Zend_Loader::loadClass('Zend_Registry');
    Zend_Registry::set("name","张三");
    if(Zend_Registry::isRegistered("name")){
      echo "对象注册表name已经定义";
    }else{
      echo "对象注册表name没有定义";
    }
    echo "<p>";
    if(Zend_Registry::isRegistered("age")){
      echo "对象注册表age已经定义";
    }else{
      echo "对象注册表age没有定义";
    }

结果:


    对象注册表name已经定义
    对象注册表age没有定义

说明:

如果定义了,可以检测出来。

5.删除静态注册表

Zend_Registry::_unsetInstance()方法删除静态注册表

案例:


    <?php
    require_once("Zend/Loader.php");
    Zend_Loader::loadClass('Zend_Registry');
    Zend_Registry::set("name","张三");
    echo "执行操作前:";
    echo "<p>";
    if(Zend_Registry::isRegistered("name")){
      echo "对象注册表name已经定义";
    }else{
      echo "对象注册表name没有定义";
    }
    echo "<p>";
    if(Zend_Registry::isRegistered("age")){
      echo "对象注册表age已经定义";
    }else{
      echo "对象注册表age没有定义";
    }
    Zend_Registry::_unsetInstance("name");
    echo "<p>";
    echo "执行操作后:";
    echo "<p>";
    if(Zend_Registry::isRegistered("name")){
      echo "对象注册表name已经定义";
    }else{
      echo "对象注册表name没有定义";
    }
    echo "<p>";
    if(Zend_Registry::isRegistered("age")){
      echo "对象注册表age已经定义";
    }else{
      echo "对象注册表age没有定义";
    }

结果:


    执行操作前:
    对象注册表name已经定义
    对象注册表age没有定义
    执行操作后:
    对象注册表name没有定义
    对象注册表age没有定义

说明:执行完删除方法之后,之前的注册信息就没有了。

小结:

这就是Zend_Registry的几个常用的方法与案例。通过注册表可以实现很多普通变量无法实现的功能。

更多关于zend相关内容感兴趣的读者可查看本站专题:《Zend FrameWork框架入门教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《ThinkPHP入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例