Zend Framework入門教程之Zend_Registry組件用法詳解
本文實(shí)例講述了Zend Framework中Zend_Registry組件用法。分享給大家供大家參考,具體如下:
1.對(duì)象注冊(cè)表
入門案例:
<?php
require_once("Zend/Loader.php");
Zend_Loader::loadClass('Zend_Registry');
$member = array(
"姓名"=>"張三",
"性別"=>"女",
"年齡"=>"13",
"職業(yè)"=>"學(xué)生",
"愛好"=>"玩游戲",
"血型"=>"AB"
);
$registry = new Zend_Registry($member);
echo "姓名為:";
echo $registry["姓名"];
echo "<p>";
echo "性別為:";
echo $registry["性別"];
echo "<p>";
echo "年齡為:";
echo $registry["年齡"];
echo "<p>";
echo "職業(yè)為:";
echo $registry["職業(yè)"];
echo "<p>";
echo "愛好為:";
echo $registry["愛好"];
echo "<p>";
結(jié)果為:
姓名為:張三 性別為:女 年齡為:13 職業(yè)為:學(xué)生 愛好為:玩游戲
2.set()方法和get()方法設(shè)置數(shù)據(jù)、獲取數(shù)據(jù)
語法:
設(shè)置值Zend_Registry::set('index','value')
獲取值Zend_Registry::get('index')
案例:
<?php
require_once("Zend/Loader.php");
Zend_Loader::loadClass('Zend_Registry');
$member = array(
"姓名"=>"張三",
"性別"=>"女",
"年齡"=>"13",
"職業(yè)"=>"學(xué)生",
"愛好"=>"玩游戲",
"血型"=>"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 "職業(yè)為:";
echo $registry["職業(yè)"];
echo "<p>";
echo "愛好為:";
echo $registry["愛好"];
echo "<p>";
說明:效果等同于new的結(jié)果。
3.對(duì)象注冊(cè)表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;
結(jié)果:
Mike 30 male
說明:通過setInstance方法,就可以用對(duì)象的方式設(shè)置其中的值了,然后通過getInstance來獲取值。
4.isRegistered()來實(shí)現(xiàn)索引是否有值的判斷。
案例:
<?php
require_once("Zend/Loader.php");
Zend_Loader::loadClass('Zend_Registry');
Zend_Registry::set("name","張三");
if(Zend_Registry::isRegistered("name")){
echo "對(duì)象注冊(cè)表name已經(jīng)定義";
}else{
echo "對(duì)象注冊(cè)表name沒有定義";
}
echo "<p>";
if(Zend_Registry::isRegistered("age")){
echo "對(duì)象注冊(cè)表age已經(jīng)定義";
}else{
echo "對(duì)象注冊(cè)表age沒有定義";
}
結(jié)果:
對(duì)象注冊(cè)表name已經(jīng)定義 對(duì)象注冊(cè)表age沒有定義
說明:
如果定義了,可以檢測(cè)出來。
5.刪除靜態(tài)注冊(cè)表
Zend_Registry::_unsetInstance()方法刪除靜態(tài)注冊(cè)表
案例:
<?php
require_once("Zend/Loader.php");
Zend_Loader::loadClass('Zend_Registry');
Zend_Registry::set("name","張三");
echo "執(zhí)行操作前:";
echo "<p>";
if(Zend_Registry::isRegistered("name")){
echo "對(duì)象注冊(cè)表name已經(jīng)定義";
}else{
echo "對(duì)象注冊(cè)表name沒有定義";
}
echo "<p>";
if(Zend_Registry::isRegistered("age")){
echo "對(duì)象注冊(cè)表age已經(jīng)定義";
}else{
echo "對(duì)象注冊(cè)表age沒有定義";
}
Zend_Registry::_unsetInstance("name");
echo "<p>";
echo "執(zhí)行操作后:";
echo "<p>";
if(Zend_Registry::isRegistered("name")){
echo "對(duì)象注冊(cè)表name已經(jīng)定義";
}else{
echo "對(duì)象注冊(cè)表name沒有定義";
}
echo "<p>";
if(Zend_Registry::isRegistered("age")){
echo "對(duì)象注冊(cè)表age已經(jīng)定義";
}else{
echo "對(duì)象注冊(cè)表age沒有定義";
}
結(jié)果:
執(zhí)行操作前: 對(duì)象注冊(cè)表name已經(jīng)定義 對(duì)象注冊(cè)表age沒有定義 執(zhí)行操作后: 對(duì)象注冊(cè)表name沒有定義 對(duì)象注冊(cè)表age沒有定義
說明:執(zhí)行完刪除方法之后,之前的注冊(cè)信息就沒有了。
小結(jié):
這就是Zend_Registry的幾個(gè)常用的方法與案例。通過注冊(cè)表可以實(shí)現(xiàn)很多普通變量無法實(shí)現(xiàn)的功能。
更多關(guān)于zend相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Zend FrameWork框架入門教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《Yii框架入門及常用技巧總結(jié)》、《ThinkPHP入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家基于Zend Framework框架的PHP程序設(shè)計(jì)有所幫助。
- 工廠模式在Zend Framework中應(yīng)用介紹
- Zend Framework開發(fā)入門經(jīng)典教程
- Zend Framework入門之環(huán)境配置及第一個(gè)Hello World示例(附demo源碼下載)
- Zend Framework入門知識(shí)點(diǎn)小結(jié)
- Zend Framework 2.0事件管理器(The EventManager)入門教程
- Zend Framework入門教程之Zend_View組件用法示例
- Zend Framework入門教程之Zend_Config組件用法詳解
- Zend Framework入門教程之Zend_Session會(huì)話操作詳解
- Zend Framework入門教程之Zend_Mail用法示例
- Zend Framework入門教程之Zend_Db數(shù)據(jù)庫(kù)操作詳解
- Zend Framework入門應(yīng)用實(shí)例詳解
相關(guān)文章
安裝docker和docker-compose實(shí)例詳解
在本篇文章里小編給大家分享的是關(guān)于安裝docker和docker-compose的具體實(shí)例和代碼,需要的朋友們可以學(xué)習(xí)下。2019-07-07
PHP file_get_contents函數(shù)讀取遠(yuǎn)程數(shù)據(jù)超時(shí)的解決方法
這篇文章主要介紹了PHP file_get_contents函數(shù)讀取遠(yuǎn)程數(shù)據(jù)超時(shí)的解決方法,本文直接給出解決方法代碼,需要的朋友可以參考下2015-05-05
解決PHPstudy Apache無法啟動(dòng)的問題【親測(cè)有效】
這篇文章主要介紹了PHPstudy Apache無法啟動(dòng)的問題及解決方法【親測(cè)有效】,本文給大家總結(jié)了三種方法供大家參考,需要的朋友可以參考下2020-10-10
php+js實(shí)現(xiàn)異步圖片上傳實(shí)例分享
本來想用插件上傳圖片的,后來自己寫了一個(gè)簡(jiǎn)單的js實(shí)現(xiàn)異步的圖片上傳,不多說上代碼非常簡(jiǎn)單2014-06-06
Laravel框架查詢構(gòu)造器常見用法總結(jié)
這篇文章主要介紹了Laravel框架查詢構(gòu)造器常見用法,結(jié)合實(shí)例形式總結(jié)分析了laravel框架查詢構(gòu)造器相關(guān)原理與常見使用技巧,需要的朋友可以參考下2019-12-12
PHP使用imagick讀取PDF生成png縮略圖的兩種方法
這篇文章主要介紹了PHP使用imagick讀取PDF第一頁生成png縮略圖的兩種方法,使用了PHP擴(kuò)展php_imagick,需要的朋友可以參考下2014-03-03

