<?php
/**
* 單例模式
* 1. 它必須擁有一個構造函數,而且必須被標記爲private,讓類在外界沒法構造對象
* 2. 它們擁有一個保存類的實例的靜態成員變量
* 3. 它們擁有一個訪問這個實例的公共的靜態方法
* 單例類不能再其它類中直接實例化,只能被其自身實例化。它不會建立實例副本,而是會向單例類內部存儲的實例返回一個引用
*/php
class Single {函數
private static $instance;
private $name;this
private function __construct(){對象
}get
private function __clone(){io
}function
public static function getInstance(){
if(empty(self::$instance)){
self::$instance = new self();
}
return self::$instance;
}class
public function getName(){
return $this->name;
}變量
public function setName($name){
$this->name = $name;
}
}構造函數
$p1 = Single::getInstance();
$p2 = Single::getInstance();
$p1->setName("tom"); echo $p2->getName(); ?>