本文实例讲述了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程序设计有所帮助。
更多zend framework入门教程之zend_registry组件用法详解。