服务器之家

服务器之家 > 正文

PHP设计模式 注册表模式(多个类的注册)

时间:2019-12-25 15:28     来源/作者:PHP教程网

以前我也写过一个注册表类,不过那一个不能进行多个类的注册,下面用数组对类进行了存储。 

复制代码代码如下:


<?php 
//基础类 
class webSite {//一个非常简单的基础类 
private $siteName; 
private $siteUrl; 
function __construct($siteName,$siteUrl){ 
$this->siteName=$siteName; 
$this->siteUrl=$siteUrl; 

function getName(){ 
return $this->siteName; 

function getUrl(){ 
return $this->siteUrl; 


class registry {//注册表类 单例模式 
private static $instance; 
private $values=array();//用数组存放类名称 
private function __construct(){}//这个用法决定了这个类不能直接实例化 
static function instance(){ 
if (!isset(self::$instance)){self::$instance=new self();} 
return self::$instance; 

function get($key){//获取已经注册了的类 
if (isset($this->values[$key])){ 
return $this->values[$key]; 

return null; 

function set($key,$value){//注册类方法 
$this->values[$key]=$value; 


$reg=registry::instance(); 
$reg->set("website",new webSite("WEB开发笔记","www.zzvips.com"));//对类进行注册 
$website=$reg->get("website");//获取类 
echo $website->getName();//输出WEB开发笔记 
echo $website->getUrl();//输出www.zzvips.com 
?> 


注册表的作用是提供系统级别的对象访问功能。有的同学会说,这样是多此一举,不过小项目中的确没有必要对类进行注册,如果是大项目,还是非常有用的。

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
配置IIS网站web服务器的安全策略配置解决方案
配置IIS网站web服务器的安全策略配置解决方案 2019-05-23
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
Nginx服务器究竟是怎么执行PHP项目
Nginx服务器究竟是怎么执行PHP项目 2019-05-24
返回顶部