[PHP] 纯文本查看 复制代码 <?php
class Person{
// 创建一个静态变量来保存对象地址
private static $obj = NULL;
// 声明一个静态方法来创建对象
static function getObject(){
if (self::$obj == NULL){
self::$obj = new self();
}
return self::$obj;
}
// 构造方法,如果设置为private则无法用new创建对象
// 因为new创建对象时会在外部访问构造方法
// private只允许内部成员方法访问,只能内部创建对象
// 骑过该方法的调用来验证对象的创建时间与次数
private function __construct(){
echo "对象初始化<br/>";
}
// 析构方法在对象被释放时调用
// 单例只会在脚本执行结束后才会被释放
// 骑过该方法的调用来验证对象的释放时间
function __destruct(){
echo "对象被释放<br/>";
}
}
$p1 = Person::getObject();
$p2 = Person::getObject();
$p3 = Person::getObject();
$p4 = Person::getObject(); 执行结果:
对象初始化
对象被释放 |