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 伪静态隐藏传递参数名的四种方法
Feb 22 PHP
PHP goto语句简介和使用实例
Mar 11 PHP
php与Mysql的一些简单的操作
Feb 26 PHP
Codeigniter实现发送带附件的邮件
Mar 19 PHP
PHP中file_exists使用中遇到的问题小结
Apr 05 PHP
PHP生成短网址方法汇总
Jul 12 PHP
php倒计时出现-0情况的解决方法
Jul 28 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
Oct 08 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
Jul 19 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
Jan 29 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
PHP7内核CGI与FastCGI详解
Apr 14 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中的字符串函数
2006/11/24 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
利用php生成验证码
2017/02/23 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
Jquery替换已存在于element上的event的方法
2010/03/09 Javascript
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
JavaScript实现简单图片翻转的方法
2015/04/17 Javascript
用Move.js配合创建CSS3动画的入门指引
2015/07/22 Javascript
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
2016/03/13 Javascript
JS模拟实现方法重载示例
2016/08/03 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
Angular2实现自定义双向绑定属性
2017/03/22 Javascript
angular.js中解决跨域问题的三种方式
2017/07/12 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
vue.js循环radio的实例
2019/11/07 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
js利用拖放实现添加删除
2020/08/27 Javascript
Python的Django应用程序解决AJAX跨域访问问题的方法
2016/05/31 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
Python 移动光标位置的方法
2019/01/20 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
2019/11/08 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
美国户外服装和装备购物网站:Outland USA
2020/03/22 全球购物
一些Solaris面试题
2013/03/22 面试题
酒店人事专员岗位职责
2013/12/19 职场文书
护理毕业生自荐信范文
2013/12/22 职场文书
Java 中的 Unsafe 魔法类的作用大全
2021/06/26 Java/Android
Django实现WebSocket在线聊天室功能(channels库)
2021/09/25 Python
「地球外少年少女」BD发售宣传CM公开
2022/03/21 日漫
Redis特殊数据类型HyperLogLog基数统计算法讲解
2022/06/01 Redis