單例模式保證某個類只有一個實例; 1,靜態成員變量保存類的唯一實例 2,聲明構造函數和克隆方法為私有,防止new一個實例 3,提供一個公共的靜態方法來訪問這個實例,返回唯一實例的的引用 <? class InstanceDemo { private static $_instance;//靜態成員變量保存唯一的實例 private function __construct()//構造函數 { echo 'I am Construceted'; } public static function GetInstance() { if(!isset(self::$_instance)) { $c=__CLASS__; self::$_instance=new $c;//new self() } return self::$_instance; } //覆蓋__clone()方法,禁止克隆 private function __clone() { echo "禁止clone"; } function test() { echo("test instance"); } } //調用靜態的共有方法得到唯一的一個實例 $test = InstanceDemo::GetInstance(); $test->test(); //禁止克隆哦 $test_clone = clone $test; ?>