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中Date()时间日期函数的使用方法小结
Apr 20 PHP
解析php函数method_exists()与is_callable()的区别
Jun 21 PHP
显示程序执行时间php函数代码
Aug 29 PHP
PHP 函数call_user_func和call_user_func_array用法详解
Mar 02 PHP
一个显示效果非常不错的PHP错误、异常处理类
Mar 21 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
Jun 13 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
Sep 16 PHP
php实现将数组转换为XML的方法
Mar 09 PHP
PHP中的session安全吗?
Jan 22 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
May 13 PHP
微信支付开发发货通知实例
Jul 12 PHP
php变量与JS变量实现不通过跳转直接交互的方法
Aug 25 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
为什么《星际争霸》是测试人工智能的理想战场
2019/12/03 星际争霸
php去除重复字的实现代码
2011/09/16 PHP
PHP删除数组中空值的方法介绍
2014/04/14 PHP
PHP统计数值数组中出现频率最多的10个数字的方法
2015/04/20 PHP
PHP函数积累总结
2019/03/19 PHP
javascript:以前写的xmlhttp池,代码
2008/05/18 Javascript
jquery获取input的value问题说明
2010/08/19 Javascript
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
2011/07/26 Javascript
jQuery 自定义函数写法分享
2012/03/30 Javascript
jQuery操作Select的Option上下移动及移除添加等等
2013/11/18 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
jquery判断单选按钮radio是否选中的方法
2015/05/05 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
jquery实现input框获取焦点的方法
2017/02/06 Javascript
微信小程序 实现动态显示和隐藏某个控件
2017/04/27 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
浅谈react-router@4.0 使用方法和源码分析
2019/06/04 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
深入理解Python 代码优化详解
2014/10/27 Python
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
Python装饰器用法实例总结
2018/05/26 Python
基于数据归一化以及Python实现方式
2018/07/11 Python
Python3实现获取图片文字里中文的方法分析
2018/12/13 Python
Python 判断奇数偶数的方法
2018/12/20 Python
Python requests模块cookie实例解析
2020/04/14 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
python 将html转换为pdf的几种方法
2020/12/29 Python
酒店总经理职务说明书
2014/02/26 职场文书
党员批评与自我批评发言稿
2014/10/14 职场文书
初中作文评语
2014/12/25 职场文书
预备党员个人总结
2015/02/14 职场文书
债务纠纷代理词
2015/05/25 职场文书
导游词之南迦巴瓦峰
2019/11/19 职场文书
Python软件包安装的三种常见方法
2022/07/07 Python