单例模式

2017-04-28  本文已影响0人  _Henry_

首先了解一个概念
静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。

由单例模式可以延伸到内存分配 -- 静态区

//测试用例
$a = Single::getInstance();
$a->setTest('a');
$b = Single::getInstance();
print_r($a);
print_r($b);
$b->setTest('b');
print_r($a);
print_r($b);
//单例类
class Single{
    // important!使用 static 存放静态区 
    private static $instance;
    private $test;

    private function __construct(){
    }

    public function setTest($test){
        $this->test = $test;
    }

    public function getTest(){
        return $this->test;
    }

    public static function getInstance(){
        //instanceof 关键字
        if(self::$instance instanceof self){
            return self::$instance;
        }else{
            self::$instance = new self;
            return self::$instance;
        }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读