代码:
<?php
/*------------------------------------------------
* Summary: PHP Singleton Pattern
* Author: fanyh
* CreateTime: 2009-08-29
* LastModifed:2009-08-29
* copyright (c)2009 fan.lnyh@gmail.com
--------------------------------------------------*/
class Car{
/**
* Enter description here...
*
* @var string
*/
private $startTime ;
/**
* Enter description here...
*
* @var Car
*/
private static $car = null ;
private function Car(){}
public function start(){
$this->startTime = date('Y-m-d H:i:s') ;
echo '车启动啦 ......' ;
echo '<br>' ;
}
public function getStartTime(){
return $this->startTime ;
}
/**
* Enter description here...
*
* @return Car
*/
public static final function getCarInstance(){
if (is_null(Car::$car)) {
Car::$car = new Car() ;
}
return Car::$car ;
}
}
$car1 = Car::getCarInstance() ;
$car1->start();
sleep(2) ;
$car2 = Car::getCarInstance() ;
$car2->start();
echo 'car1 start time:'.$car1->getStartTime() ;
echo '<br>' ;
echo 'car2 start time:'.$car1->getStartTime() ;
echo '<br>' ;
?>
运行结果:
车启动啦 ......
车启动啦 ......
car1 start time:2009-08-29 15:08:16
car2 start time:2009-08-29 15:08:16
从car1和car2输出的时间一致,可以说明实现了单例模式。