首先了解一個概念
靜態(tài)存儲區(qū):內(nèi)存在程序編譯的時候就已經(jīng)分配好,這塊內(nèi)存在程序的整個運行期間都存在材泄。它主要存放靜態(tài)數(shù)據(jù)沮焕、全局數(shù)據(jù)和常量。
由單例模式可以延伸到內(nèi)存分配 -- 棧拉宗、堆遇汞、靜態(tài)區(qū)
//測試用例
$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 存放靜態(tài)區(qū)
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;
}
}
}