Zend Framework入门教程之Zend_Registry组件用法详解
author:一佰互联 2019-04-26   click:150

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

1.对象注册表

入门案例:

<?phprequire_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")

案例:

<?phprequire_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

例子:

<?phprequire_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;

结果:

Mike30male

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

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

案例:

<?phprequire_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()方法删除静态注册表

案例:

<?phprequire_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程序设计有所帮助。