首頁  >  文章  >  後端開發  >  關於Zend Framework中Zend_Registry組件的用法分析

關於Zend Framework中Zend_Registry組件的用法分析

不言
不言原創
2018-06-15 14:33:111348瀏覽

這篇文章主要介紹了Zend Framework入門教程之Zend_Registry組件用法,結合實例形式分析了Zend_Registry組件實現對象註冊的設置、獲取、判斷、刪除等操作常用技巧,需要的朋友可以參考下

本文實例講述了Zend Framework中Zend_Registry元件用法。分享給大家供大家參考,具體如下:

1.物件註冊表

#入門案例:

##

<?php
require_once("Zend/Loader.php");
Zend_Loader::loadClass(&#39;Zend_Registry&#39;);
$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(&#39;Zend_Registry&#39;);
$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(&#39;Zend_Registry&#39;);
$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(&#39;Zend_Registry&#39;);
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(&#39;Zend_Registry&#39;);
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的幾個常用的方法與案例。透過註冊表可以實現許多普通變數無法實現的功能。
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:
關於Zend Framework處理Json資料的方法


關於Zend Framework中Loader及PluginLoader的用法解析

關於Zend Framework動作控制器的用法

####################################### #######

以上是關於Zend Framework中Zend_Registry組件的用法分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn