PHP設(shè)計(jì)模式 注冊(cè)表模式
更新時(shí)間:2012年02月05日 21:50:43 作者:
注冊(cè)表模式其實(shí)是一個(gè)單例模式,注冊(cè)表類提供靜態(tài)方法(或單例對(duì)象的實(shí)例化方法)來讓其它對(duì)象訪問其中的數(shù)據(jù)(通常是對(duì)象)。整個(gè)系統(tǒng)中的每個(gè)對(duì)象都可以訪問這些數(shù)據(jù)對(duì)象
下面是基本的注冊(cè)表類的代碼:
<?php
class Registry {
private static $instance;
private $request;//注冊(cè)表的內(nèi)容類
private function __construct(){}//本類,不可實(shí)例化
static function instance(){//單例類,通過這個(gè)方法返回實(shí)例
if (!isset(self::$instance)){self::$instance=new self();}
return self::$instance;
}
function getRequest(){//返回注冊(cè)的內(nèi)容類
return $this->request;
}
function setRequest(request $request){//設(shè)置注冊(cè)的內(nèi)容類
$this->request=$request;
}
}
class request{//被 注冊(cè)的類
private $webname="WEB開發(fā)筆記";
private $url="www.chhua.com";
function getName(){
echo $this->url;//輸出www.chhua.com
}
}//被注冊(cè)的空類
//使用
$reg=Registry::instance();
$reg->setRequest(new request());
$request=$reg->getRequest();
$request->getName();//輸出www.chhua.com
?>
注冊(cè)表的作用是提供系統(tǒng)級(jí)別的對(duì)象訪問功能。
復(fù)制代碼 代碼如下:
<?php
class Registry {
private static $instance;
private $request;//注冊(cè)表的內(nèi)容類
private function __construct(){}//本類,不可實(shí)例化
static function instance(){//單例類,通過這個(gè)方法返回實(shí)例
if (!isset(self::$instance)){self::$instance=new self();}
return self::$instance;
}
function getRequest(){//返回注冊(cè)的內(nèi)容類
return $this->request;
}
function setRequest(request $request){//設(shè)置注冊(cè)的內(nèi)容類
$this->request=$request;
}
}
class request{//被 注冊(cè)的類
private $webname="WEB開發(fā)筆記";
private $url="www.chhua.com";
function getName(){
echo $this->url;//輸出www.chhua.com
}
}//被注冊(cè)的空類
//使用
$reg=Registry::instance();
$reg->setRequest(new request());
$request=$reg->getRequest();
$request->getName();//輸出www.chhua.com
?>
注冊(cè)表的作用是提供系統(tǒng)級(jí)別的對(duì)象訪問功能。
相關(guān)文章
PHP如何讀取由JavaScript設(shè)置的Cookie
本文主要介紹了PHP讀取由JavaScript設(shè)置的Cookie的方法。具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-03-03
php tp驗(yàn)證表單與自動(dòng)填充函數(shù)代碼
php tp驗(yàn)證表單與自動(dòng)填充函數(shù)代碼,需要的朋友可以參考下2012-02-02
防止本地用戶用fsockopen DDOS攻擊對(duì)策
php腳本中的 fsockopen 函數(shù),對(duì)外部地址,通過UDP發(fā)送大量的數(shù)據(jù)包,攻擊對(duì)方2011-11-11
fetchAll()與mysql_fetch_array()的區(qū)別詳解
本篇文章是對(duì)fetchAll()與mysql_fetch_array()的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
php判斷某個(gè)方法是否存在函數(shù)function_exists (),method_exists()與is_callabl
這篇文章主要介紹了php判斷某個(gè)方法是否存在函數(shù)function_exists (),method_exists()與is_callable()區(qū)別與用法,結(jié)合實(shí)例形式分析了php function_exists (),method_exists()與is_callable()基本功能、用法、區(qū)別與操作注意事項(xiàng),需要的朋友可以參考下2020-04-04
PHP 網(wǎng)絡(luò)開發(fā)詳解之遠(yuǎn)程文件包含漏洞
由于PHP支持使用相同的函數(shù)(Function)對(duì)本地文件和遠(yuǎn)程文件進(jìn)行操作。因此,一些惡意用戶通過強(qiáng)行使網(wǎng)站上的PHP代碼(Code)包含自己的文件來實(shí)現(xiàn)執(zhí)行自己腳本的目的。2010-04-04

