Sian 发表于 2016-1-1 11:13:18

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();执行结果:
对象初始化
对象被释放
页: [1]
查看完整版本: PHP单例设计模式的基本实现