注意:
1.外部不可以實例化,因此內部實例化函數的類型必須爲靜態,在類未實例化之前就已經初始化;
2.靜態函數只能訪問靜態變量,所以定義private static $instance;
3.靜態變量的訪問寫法爲:類名::$變量名,在類內部可以直接寫self:$instance;
4.可以用instanceof這個關鍵字檢測變量中存放的是不是當前的類實例。
<?php
//php下的單例模式
class Single
{
private static $instance;
//防止在外部進行 實例化 new Single
private function __construct()
{
}
public static function getInstance()
{
if(self::$instance instanceof self)
{
self::$instance =new self;
}
return self::$instance;
}
//防止被克隆 $b=clone $a
private function __clone()
{
}
}