本文實例講述了Zend Framework中Zend_Registry組件用法。分享給大家供大家參考,具體如下:
1.對象注冊表
入門案例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<?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é)果為:
1
2
3
4
5
|
姓名為:張三 性別為:女 年齡為:13 職業(yè)為:學(xué)生 愛好為:玩游戲 |
2.set()方法和get()方法設(shè)置數(shù)據(jù)、獲取數(shù)據(jù)
語法:
設(shè)置值Zend_Registry::set('index','value')
獲取值Zend_Registry::get('index')
案例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
<?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.對象注冊表setInstance、getInstance
例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?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é)果:
1
2
3
|
Mike 30 male |
說明:通過setInstance方法,就可以用對象的方式設(shè)置其中的值了,然后通過getInstance來獲取值。
4.isRegistered()來實現(xiàn)索引是否有值的判斷。
案例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?php require_once ( "Zend/Loader.php" ); Zend_Loader::loadClass( 'Zend_Registry' ); Zend_Registry::set( "name" , "張三" ); if (Zend_Registry::isRegistered( "name" )){ echo "對象注冊表name已經(jīng)定義" ; } else { echo "對象注冊表name沒有定義" ; } echo "<p>" ; if (Zend_Registry::isRegistered( "age" )){ echo "對象注冊表age已經(jīng)定義" ; } else { echo "對象注冊表age沒有定義" ; } |
結(jié)果:
1
2
|
對象注冊表name已經(jīng)定義 對象注冊表age沒有定義 |
說明:
如果定義了,可以檢測出來。
5.刪除靜態(tài)注冊表
Zend_Registry::_unsetInstance()方法刪除靜態(tài)注冊表
案例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
<?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 "對象注冊表name已經(jīng)定義" ; } else { echo "對象注冊表name沒有定義" ; } echo "<p>" ; if (Zend_Registry::isRegistered( "age" )){ echo "對象注冊表age已經(jīng)定義" ; } else { echo "對象注冊表age沒有定義" ; } Zend_Registry::_unsetInstance( "name" ); echo "<p>" ; echo "執(zhí)行操作后:" ; echo "<p>" ; if (Zend_Registry::isRegistered( "name" )){ echo "對象注冊表name已經(jīng)定義" ; } else { echo "對象注冊表name沒有定義" ; } echo "<p>" ; if (Zend_Registry::isRegistered( "age" )){ echo "對象注冊表age已經(jīng)定義" ; } else { echo "對象注冊表age沒有定義" ; } |
結(jié)果:
1
2
3
4
5
6
|
執(zhí)行操作前: 對象注冊表name已經(jīng)定義 對象注冊表age沒有定義 執(zhí)行操作后: 對象注冊表name沒有定義 對象注冊表age沒有定義 |
說明:執(zhí)行完刪除方法之后,之前的注冊信息就沒有了。
小結(jié):
這就是Zend_Registry的幾個常用的方法與案例。通過注冊表可以實現(xiàn)很多普通變量無法實現(xiàn)的功能。
希望本文所述對大家基于Zend Framework框架的PHP程序設(shè)計有所幫助。