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分页显示制作详细讲解
Oct 09 PHP
APMServ使用说明
Oct 23 PHP
有关JSON以及JSON在PHP中的应用
Apr 09 PHP
PHP中去掉字符串首尾空格的方法
May 19 PHP
解析php addslashes()与addclashes()函数的区别和比较
Jun 24 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
Apr 09 PHP
PHP使用适合阅读的格式显示文件大小的方法
Mar 05 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
May 12 PHP
php中使用gd库实现远程图片下载实例
May 12 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
Mar 22 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
php nginx 实时输出的简单实现方法
Jan 21 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 ss7.5的数据调用 (笔记)
2010/03/08 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
2014/06/24 PHP
简单实用的网站PHP缓存类实例
2014/07/18 PHP
PHP常用数组函数介绍
2014/07/28 PHP
ThinkPHP模型详解
2015/07/27 PHP
详解WordPress中简码格式标签编写的基本方法
2015/12/22 PHP
thinkPHP下的widget扩展用法实例分析
2015/12/26 PHP
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
2016/05/21 Javascript
js removeChild 方法深入理解
2016/08/16 Javascript
JavaScript学习笔记整理_关于表达式和语句
2016/09/19 Javascript
详解微信小程序开发—你期待的分享功能来了,微信小程序序新增5大功能
2016/12/23 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
React Native实现进度条弹框的示例代码
2017/07/17 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
2019/03/07 Javascript
[01:53]3.19 DOTA2发布会 现场精彩Coser表演
2014/03/25 DOTA
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
python在命令行下使用google翻译(带语音)
2014/01/16 Python
Python 分析Nginx访问日志并保存到MySQL数据库实例
2014/03/13 Python
numpy返回array中元素的index方法
2018/06/27 Python
django admin后台添加导出excel功能示例代码
2019/05/15 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
2019/06/17 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
详解Python 中sys.stdin.readline()的用法
2019/09/12 Python
使用canvas绘制贝塞尔曲线
2014/12/17 HTML / CSS
HTML table 表格边框的实现思路
2019/10/12 HTML / CSS
英国探险旅游专家:Explore
2018/12/20 全球购物
国家助学金感谢信
2015/01/21 职场文书
公司员工辞职信范文
2015/05/12 职场文书
导游词之西安骊山
2019/12/20 职场文书
Html5生成验证码的示例代码
2021/05/10 Javascript
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python
Spring中bean集合注入的方法详解
2022/07/07 Java/Android