程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> Zend Framework入門教程之Zend_Registry組件用法詳解

Zend Framework入門教程之Zend_Registry組件用法詳解

編輯:PHP綜合

本文實例講述了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相關內容感興趣的讀者可查看本站專題:《Zend FrameWork框架入門教程》、《php優秀開發框架總結》、《Yii框架入門及常用技巧總結》、《ThinkPHP入門教程》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家基於Zend Framework框架的PHP程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved