直接代码
class Dog {
public $name;
private static $single;
public static $count = 0;
// 构造方法设为私有
private function __construct($name) {
$this->name = $name;
self::$count ++;
}
// 静态构造方法,实例化对象只能调用这个方法
public static function getinstance($name) {
if (self::$single) {
}else {
self::$single = new Dog($name);
}
return self::$single;
}
// 析构方法
function __destruct(){
// TODO: Implement __destruct() method.
}
function __toString(){ // 魔术方法 个性化打印结果
return 'name is '.$this->name;
}
public function setName($name) {
if (self::$single) {
self::$single->name = $name;
}
}
public function getName() {
if (self::$single) {
return self::$single->name;
}
}
// 克隆魔术方法私有
private function __clone()
{
self::$count ++;
}
}
$dog = Dog::getinstance('巴顿');
var_dump($dog);
$dog->setName('花生');
var_dump($dog);