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函数解决SQL injection
Oct 09 PHP
使用php+xslt在windows平台上
Oct 09 PHP
打造超酷的PHP数据饼图效果实现代码
Nov 23 PHP
php对大文件进行读取操作的实现代码
Jan 23 PHP
PHP里的单例类写法实例
Jun 25 PHP
Zend Framework教程之Zend_Layout布局助手详解
Mar 04 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
Mar 14 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
May 12 PHP
PHP调试及性能分析工具Xdebug详解
Feb 09 PHP
php表单习惯用的正则表达式
Oct 11 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
Nov 16 PHP
PHP RabbitMQ消息列队
May 11 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中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
PHP采集腾讯微博的实现代码
2012/01/19 PHP
Yii列表定义与使用分页方法小结(3种方法)
2016/07/15 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
2010/08/13 Javascript
最佳JS代码编写的14条技巧
2011/01/09 Javascript
js如何取消事件冒泡
2013/09/23 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
jQuery+AJAX实现网页无刷新上传
2015/02/22 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
2016/02/28 Javascript
JavaScript如何实现组合列表框中元素移动效果
2016/03/01 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
2016/06/03 Javascript
js实现select选择框效果及美化
2016/08/19 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
Angular2+国际化方案(ngx-translate)的示例代码
2017/08/23 Javascript
SVG实现时钟效果
2018/07/17 Javascript
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
js实现淘宝浏览商品放大镜功能
2020/10/28 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
Python标准库inspect的具体使用方法
2017/12/06 Python
基于scrapy的redis安装和配置方法
2018/06/13 Python
Python求离散序列导数的示例
2019/07/10 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
Python批量删除mysql中千万级大量数据的脚本分享
2020/12/03 Python
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
一道SQL存储过程面试题
2016/10/07 面试题
销售人员工作自我评价
2014/09/21 职场文书
质量整改通知单
2015/04/21 职场文书
采购部年度工作总结
2015/08/13 职场文书
董事长秘书工作总结
2015/08/14 职场文书
《平移和旋转》教学反思
2016/02/19 职场文书
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle
Python可视化神器pyecharts之绘制地理图表练习
2022/07/07 Python
vue3 自定义图片放大器效果的示例代码
2022/07/23 Vue.js