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中的多态性[译]
Aug 02 PHP
php木马webshell扫描器代码
Jan 25 PHP
php多个字符串替换成同一个的解决方法
Jun 18 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
Jun 28 PHP
PHP生成不同颜色、不同大小的tag标签函数
Sep 23 PHP
在Yii框架中使用PHP模板引擎Twig的例子
Jun 13 PHP
php实现通用的信用卡验证类
Mar 24 PHP
PHP简单处理表单输入的特殊字符的方法
Feb 03 PHP
YII2框架中excel表格导出的方法详解
Jul 21 PHP
基于swoole实现多人聊天室
Jun 14 PHP
PHP观察者模式示例【Laravel框架中有用到】
Jun 15 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
Oct 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 adodb连接不同数据库
2009/03/19 PHP
解析php中如何直接执行SHELL
2013/06/28 PHP
PHP错误和异长常处理总结
2014/03/06 PHP
PHP远程采集图片详细教程
2014/07/01 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
2017/08/15 PHP
微信公众号之主动给用户发送消息功能
2019/06/22 PHP
30分钟就入门的正则表达式基础教程
2013/02/25 Javascript
非常漂亮的JS+CSS图片幻灯切换特效
2013/11/20 Javascript
JavaScript编程中布尔对象的基本使用
2015/10/25 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
js判断图片加载完成后获取图片实际宽高的方法
2016/02/25 Javascript
详解axios在vue中的简单配置与使用
2017/05/10 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
微信小程序获取手机网络状态的方法【附源码下载】
2017/12/08 Javascript
vue-cli4.x创建企业级项目的方法步骤
2020/06/18 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
Python数据结构之Array用法实例
2014/10/09 Python
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
Python requests模块实例用法
2019/02/11 Python
python3对接mysql数据库实例详解
2019/04/30 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
俄罗斯达美乐比萨外送服务:Domino’s Pizza
2020/12/18 全球购物
Linux管理员面试题 Linux admin interview questions
2014/11/01 面试题
农药学硕士毕业生自荐信
2013/09/25 职场文书
策划助理岗位职责
2013/11/18 职场文书
酒店办公室文员岗位职责
2013/12/18 职场文书
精彩自我鉴定
2014/01/16 职场文书
《雨霖铃》教学反思
2014/02/22 职场文书
《月亮湾》教学反思
2014/04/14 职场文书
《分数的意义》教学反思
2016/02/20 职场文书
解除合同协议书范本
2016/03/21 职场文书
Nginx进程调度问题详解
2021/09/25 Servers
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
2022/02/12 MySQL
pandas进行数据输入和输出的方法详解
2022/03/23 Python