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中文件缓存转内存缓存的方法
Dec 06 PHP
利用php实现禁用IE和火狐的缓存问题
Dec 03 PHP
解析phpstorm + xdebug 远程断点调试
Jun 20 PHP
php获取随机数组列表的方法
Nov 13 PHP
PHP内核探索:哈希表碰撞攻击原理
Jul 31 PHP
PHP常用的排序和查找算法
Aug 06 PHP
从性能方面考虑PHP下载远程文件的3种方法
Dec 29 PHP
PHP连接MYSQL数据库实例代码
Jan 20 PHP
ThinkPHP中limit()使用方法详解
Apr 19 PHP
实例讲解PHP页面静态化
Feb 05 PHP
PHP实现分布式memcache设置web集群session同步的方法
Apr 10 PHP
Yii2框架实现登陆添加验证码功能示例
Jul 12 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数组去重的更快实现方式分析
2018/05/09 PHP
在 Laravel 项目中使用 webpack-encore的方法
2019/07/21 PHP
javascript Keycode对照表
2009/10/24 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
Jquery知识点一 Jquery的ready和Dom的onload的区别
2011/01/15 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
2012/10/18 Javascript
异步javascript的原理和实现技巧介绍
2012/11/08 Javascript
javascript 树形导航菜单实例代码
2013/08/13 Javascript
js跳转页面方法总结
2014/01/29 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
网页运行时提示对象不支持abigimage属性或方法
2014/08/10 Javascript
JavaScript分析、压缩工具JavaScript Analyser
2014/12/31 Javascript
JavaScript中Number.MIN_VALUE属性的使用示例
2015/06/04 Javascript
全面解析Bootstrap图片轮播效果
2015/12/03 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
2016/06/17 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
React Native中Mobx的使用方法详解
2018/12/04 Javascript
JQuery属性操作与循环用法示例
2019/05/15 jQuery
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
详解Python import方法引入模块的实例
2017/08/02 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
tensorboard显示空白的解决
2020/02/15 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
html5画布旋转效果示例
2014/01/27 HTML / CSS
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
邀请书格式范文
2015/02/02 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书
工资证明格式模板
2015/06/12 职场文书
学习委员竞选稿
2015/11/20 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
高端收音机+蓝牙音箱,JBL TUNER FM带收音蓝牙音箱评测
2021/04/24 无线电