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


Posted in PHP onDecember 09, 2016

本文实例讲述了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 Framework框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP的FTP学习(一)[转自奥索]
Oct 09 PHP
PHP多个版本的分析解释
Jul 21 PHP
用来解析.htgroup文件的PHP类
Sep 05 PHP
php加密算法之实现可逆加密算法和解密分享
Jan 21 PHP
php的sprintf函数的用法 控制浮点数格式
Feb 14 PHP
页面利用渐进式JPEG来提升用户体验度
Dec 01 PHP
php $_SESSION会员登录实例分享
Jan 19 PHP
php无法连接mysql数据库的正确解决方法
Jul 01 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
Apr 20 PHP
PHP反射实际应用示例
Apr 03 PHP
laravel 数据验证规则详解
Oct 23 PHP
PHP实现腾讯短网址生成api接口实例
Dec 08 PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 #PHP
Zend Framework过滤器Zend_Filter用法详解
Dec 09 #PHP
Zend Framework实现自定义过滤器的方法
Dec 09 #PHP
Zend Framework校验器Zend_Validate用法详解
Dec 09 #PHP
浅谈PHP中try{}catch{}的使用方法
Dec 09 #PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
Dec 09 #PHP
浅谈PHP的数据库接口和技术
Dec 09 #PHP
You might like
用PHP连mysql和oracle数据库性能比较
2006/10/09 PHP
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
PHP中调用ASP.NET的WebService的代码
2011/04/22 PHP
通过php删除xml文档内容的方法
2015/01/23 PHP
不懂JavaScript应该怎样学
2008/04/16 Javascript
javascript网页关键字高亮代码
2008/07/30 Javascript
javascript 闭包疑问
2010/12/30 Javascript
jQuery实现 注册时选择阅读条款 左右移动
2013/04/11 Javascript
JS中获取数据库中的值的方法
2013/07/14 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
JS获取节点的兄弟,父级,子级元素的方法
2014/01/09 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
Jquery弹出层插件ThickBox的使用方法
2014/12/09 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
2018/09/14 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
2018/12/22 Javascript
JS重学系列之聊聊new操作符
2019/03/04 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
2020/03/03 Javascript
[02:42]2014DOTA2国际邀请赛 三冰专访:我会打到Ti20
2014/07/13 DOTA
Python中动态获取对象的属性和方法的教程
2015/04/09 Python
python九九乘法表的实例
2017/09/26 Python
Python爬虫包BeautifulSoup实例(三)
2018/06/17 Python
对Python3之进程池与回调函数的实例详解
2019/01/22 Python
详解Python学习之安装pandas
2019/04/16 Python
python读写csv文件实例代码
2019/07/05 Python
关于windows下Tensorflow和pytorch安装教程
2020/02/04 Python
python游戏开发的五个案例分享
2020/03/09 Python
党员承诺书怎么写
2014/05/20 职场文书
经济国贸专业求职信
2014/06/18 职场文书
2014年店长工作总结
2014/11/17 职场文书
工程质检员岗位职责
2015/04/08 职场文书
中小企业员工手册范本
2015/05/14 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书