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 相关文章推荐
php5.2时间相差8小时
Jan 15 PHP
php页面消耗内存过大的处理办法
Mar 18 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
Jun 27 PHP
Thinkphp的volist标签嵌套循环使用教程
Jul 08 PHP
php导出CSV抽象类实例
Sep 24 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
Jun 17 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
May 13 PHP
轻松实现php文件上传功能
Feb 17 PHP
laravel自定义分页效果
Jul 23 PHP
php分享朋友圈的实现代码
Feb 18 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
Apr 07 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
Apr 27 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
仿微博字符限制效果实现代码
2012/04/20 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
2015/06/19 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
2017/07/05 Javascript
js合并两个数组生成合并后的key:value数组
2018/05/09 Javascript
JavaScript笛卡尔积超简单实现算法示例
2018/07/30 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
jQuery 动画与停止动画效果实例详解
2020/05/19 jQuery
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
2020/05/26 Javascript
基于小程序请求接口wx.request封装的类axios请求
2020/07/02 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
python爬虫入门教程之点点美女图片爬虫代码分享
2014/09/02 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
python @property的用法及含义全面解析
2018/02/01 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
Python使用folium excel绘制point
2019/01/03 Python
Python下简易的单例模式详解
2019/04/08 Python
用django设置session过期时间的方法解析
2019/08/05 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
Scrapy框架实现的登录网站操作示例
2020/02/06 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
Python二元算术运算常用方法解析
2020/09/15 Python
Sunglasses Shop英国:欧洲领先的太阳镜在线供应商之一
2018/09/19 全球购物
大学活动策划书范文
2014/01/10 职场文书
工作失职检讨书范文
2014/01/16 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
国家励志奖学金个人先进事迹材料
2014/05/04 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
2014年物业公司工作总结
2014/11/22 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python
面试提问mysql一张表到底能存多少数据
2022/03/13 MySQL