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简单命令代码集锦
Sep 24 PHP
php header()函数使用说明
Jul 10 PHP
PHP实现的英文名字全拼随机排号脚本
Jul 04 PHP
ThinkPHP自动完成中使用函数与回调方法实例
Nov 29 PHP
php使用cookie保存用户登录的用户名实例
Jan 26 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
Jan 07 PHP
php结合md5实现的加密解密方法
Jan 25 PHP
基于laravel制作APP接口(API)
Mar 15 PHP
php处理json格式数据经典案例总结
May 19 PHP
PHP常用日期加减计算方法实例小结
Jul 31 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
Oct 12 PHP
PHP+Mysql分布式事务与解决方案深入理解
Feb 27 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 不同编码下的字符串长度区分
2009/09/26 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
2015/03/26 PHP
PHP中的session安全吗?
2016/01/22 PHP
php array_keys 返回数组的键名
2016/10/25 PHP
PHP观察者模式实例分析【对比JS观察者模式】
2019/05/22 PHP
addRule在firefox下的兼容写法
2006/11/30 Javascript
某页码显示的helper 少量调整,另附js版
2010/09/12 Javascript
JS Replace()的高级使用方法介绍
2013/06/29 Javascript
jquery 实现上下滚动效果示例代码
2013/08/09 Javascript
Javascript中string转date示例代码
2013/11/01 Javascript
用js一次改变多个input的readonly属性值的方法
2014/06/11 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
运用jQuery写的验证表单(实例讲解)
2017/07/06 jQuery
JS库之Highlight.js的用法详解
2017/09/13 Javascript
基于js中的原型(全面讲解)
2017/09/19 Javascript
jquery鼠标悬停导航下划线滑出效果
2017/09/29 jQuery
js构造函数创建对象是否加new问题
2018/01/22 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
[00:42]《辉夜杯》—职业组预选赛12月3日15点 正式打响
2015/12/03 DOTA
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
python实现手机通讯录搜索功能
2018/02/22 Python
matplotlib实现区域颜色填充
2019/03/18 Python
详解Python中的测试工具
2019/06/09 Python
wxPython实现绘图小例子
2019/11/19 Python
python matplotlib imshow热图坐标替换/映射实例
2020/03/14 Python
电信专业毕业生推荐信
2013/11/18 职场文书
日化店促销方案
2014/03/26 职场文书
爬山的活动方案
2014/08/16 职场文书
英语教师个人总结
2015/02/09 职场文书
正规借条模板
2015/05/26 职场文书
2015年评职称个人工作总结
2015/10/15 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
mysql字段为NULL索引是否会失效实例详解
2022/05/30 MySQL