单例模式

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

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

//测试用例
$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;
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容