[php]PHP下的单例模式实例
下面是一个单例模式的例子,同时满足以下要求:①类只能有一个实例(不能多)
②类必须能够自行创建这个实例
③必须自行向整个系统提供这个实例,换句话说:多个对象共享一块内存区域,比如,对象A设置了某些属性值,则对象B,C也可以访问这些属性值
<?php
class SqlHelper{
private static $_instance;
public $_dbname;
private function __construct(){
}
//getInstance()方法必须设置为公有的,必须调用此方法
public static function getInstance(){
//对象方法不能访问普通的对象属性,所以$_instance需要设为静态的
if (self::$_instance===null) {
//self::$_instance=new SqlHelper();//方式一
self::$_instance=new self();//方式二
}
return self::$_instance;
}
public function getDbName(){
echo $this->_dbname;
}
public function setDbName($dbname){
$this->_dbname=$dbname;
}
}
// $sqlHelper=new SqlHelper();//打印:Fatal error: Call to private SqlHelper::__construct() from invalid context
$A=SqlHelper::getInstance();
$A->setDbName('数据库名');
$A->getDbName();
// unset($A);//移除引用
$B=SqlHelper::getInstance();
$B->getDbName();
$C=SqlHelper::getInstance();
$C->getDbName();
?>
标签: php
日历
最新微语
- 有的时候,会站在分叉路口,不知道向左还是右
2023-12-26 15:34
- 繁花乱开,鸟雀逐风。心自宁静,纷扰不闻。
2023-03-14 09:56
- 对于不可控的事,我们保持乐观,对于可控的事情,我们保持谨慎。
2023-02-09 11:03
- 小时候,
暑假意味着无忧无虑地玩很长一段时间,
节假意味着好吃好喝还有很多长期不见的小朋友来玩...
长大后,
这是女儿第一个暑假,
一个半月...
2022-07-11 08:54
- Watching the autumn leaves falling as you grow older together
2018-10-25 09:45
分类
最新评论
- Goonog
i get it now :) - 萧
@Fluzak:The web host... - Fluzak
Nice blog here! Also... - Albertarive
In my opinion you co... - ChesterHep
What does it plan? - ChesterHep
No, opposite. - mojoheadz
Everything is OK!... - Josephmaigh
I just want to say t... - ChesterHep
What good topic - AnthonyBub
Certainly, never it ...
发表评论: