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 相关文章推荐
一个简单计数器的源代码
Oct 09 PHP
PHP 数组实例说明
Aug 18 PHP
Smarty的配置与高级缓存技术分享
Jun 05 PHP
谨慎使用PHP的引用原因分析
Sep 06 PHP
PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
Apr 26 PHP
ThinkPHP添加更新标签的方法
Dec 05 PHP
php简单统计中文个数的方法
Sep 30 PHP
PHP中的正则表达式实例详解
Apr 25 PHP
asp函数split()对应php函数explode()
Feb 27 PHP
浅谈php的TS和NTS的区别
Mar 13 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
Jul 08 PHP
关于PHP5.6+版本“No input file specified”问题的解决
Dec 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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
php 删除记录实现代码
2009/03/12 PHP
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
2007/12/23更新创意无限,简单实用(javascript log)
2007/12/24 Javascript
jquery.ui.progressbar 中文文档
2009/11/26 Javascript
改善你的jQuery的25个步骤 千倍级效率提升
2010/02/11 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
JavaScript数组Array对象增加和删除元素方法总结
2015/01/20 Javascript
jQuery动画与特效详解
2015/02/01 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
js实现分割上传大文件
2016/03/09 Javascript
webpack3之loader全解析
2017/10/26 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
Jquery使用each函数实现遍历及数组处理
2020/07/14 jQuery
夯基础之手撕javascript继承详解
2020/11/09 Javascript
js实现简易点击切换显示或隐藏
2020/11/29 Javascript
[58:46]OG vs NAVI 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[01:13:18]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
使用graphics.py实现2048小游戏
2015/03/10 Python
Python实现从订阅源下载图片的方法
2015/03/11 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
python3.7.0的安装步骤
2018/08/27 Python
python实现百度OCR图片识别过程解析
2020/01/17 Python
Django-migrate报错问题解决方案
2020/04/21 Python
django 外键创建注意事项说明
2020/05/20 Python
PyCharm中如何直接使用Anaconda已安装的库
2020/05/28 Python
美国家居装饰网上商店:Lulu & Georgia
2019/09/14 全球购物
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
说一下Linux下有关用户和组管理的命令
2014/08/18 面试题
淘宝客服工作职责
2014/07/11 职场文书
个人培训总结
2015/03/05 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
小兵张嘎观后感
2015/06/03 职场文书
javaScript Array api梳理
2021/03/31 Javascript