二、单元素模式
    单元素 模式(Singleton Pattern)指的是在应用程序的范围内只对指定的类创建一个实例。通常该模式中包含一个私有构造方法,用来确保用户无法通过创建对象或者克隆的方式对 其进行实例化。除此以外,该模式中还包含一个私有静态属性与公有静态方法。公有静态方法负责对其本身实例化,然后将这个对象存储在私有静态属性中,用来确 保只有一个实例被创建。

1、类图
点击在新窗口中浏览此图片
这里,私有构造方法__contruct()用来确保Singleton类无法通过创建对象或克隆的方式对其进行实例化。只能通过公有静态方法getInstance()生成一个该类的实例并且存储在私有静态属性$instance中。

2、代码

    <?php  
    class Singleton{  
      private static $instance = null;  
      private static $msg;  
      //私有化构造方法  
      private function __construct(){  
        self::$msg++;  
      }   
      //公有静态方法getInstance()  
      public static function getInstance() {  
        if (self::$instance==null) { //确保只有一个实例被创建  
          self::$instance = new Singleton();  
        }  
        return self::$instance;  
      }  
      //公有成员方法printString()  
      public function printString() {  
        echo "测试".self::$msg;  
      }  
    }  
    $class = Singleton::getInstance();  
    $class->printString();  
    echo "<br />";  
    $class2 = Singleton::getInstance();  
    $class2->printString();

http://www.linuxfly.org/post/614/