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 excel reader读取excel内容存入数据库实现代码
Dec 06 PHP
使用PHP Socket写的POP3类
Oct 30 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
Jun 19 PHP
php获取一个变量的名字的方法
Sep 05 PHP
php数组键值用法实例分析
Feb 27 PHP
PHP统一页面编码避免乱码问题
Apr 09 PHP
php结合ACCESS的跨库查询功能
Jun 12 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
Jul 13 PHP
PHP搭建大文件切割分块上传功能示例
Jan 04 PHP
Laravel路由研究之domain解决多域名问题的方法示例
Apr 04 PHP
php tpl模板引擎定义与使用示例
Aug 09 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
Oct 30 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
天使彦史上最神还原,性别曝光的那一刻,百万网友恋爱了
2020/03/02 国漫
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
一个改进的UBB类
2006/10/09 PHP
一道关于php变量引用的面试题
2010/08/08 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
2013/07/22 PHP
jQuery 1.0.2
2006/10/11 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
实现web打印的各种方法介绍及实现代码
2013/01/09 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
2016/11/02 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
小程序click-scroll组件设计
2019/06/18 Javascript
axios 实现post请求时把对象obj数据转为formdata
2019/10/31 Javascript
js实现的在本地预览图片功能示例
2019/11/09 Javascript
nodejs环境使用Typeorm连接查询Oracle数据
2019/12/05 NodeJs
解决Vue项目中tff报错的问题
2020/10/21 Javascript
[01:15:00]LGD vs Mineski Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
[51:43]OG vs LGD 2018国际邀请赛淘汰赛BO3 第五场 8.26
2018/08/30 DOTA
Python程序设计入门(4)模块和包
2014/06/16 Python
Python绘制正余弦函数图像的方法
2018/08/28 Python
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
浅谈Pycharm中的Python Console与Terminal
2019/01/17 Python
Python二维码生成识别实例详解
2019/07/16 Python
学Python 3的理由和必要性
2019/11/19 Python
Pycharm debug调试时带参数过程解析
2020/02/03 Python
python实现超级马里奥
2020/03/18 Python
Python实现猜年龄游戏代码实例
2020/03/25 Python
查看keras的默认backend实现方式
2020/06/19 Python
澳大利亚家居用品零售商:Harris Scarfe
2020/10/10 全球购物
25道Java面试题集合
2013/05/21 面试题
广告语设计及教案
2014/03/21 职场文书
应届大学生求职信
2014/07/20 职场文书
商场父亲节活动方案
2014/08/27 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
办公室规章制度范本
2015/08/04 职场文书