单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

定义一个私有的构造方法,可以让类无法从自身外部实例化。


  1. <?php

  2. header("Content-type: text/html; charset=utf-8");  

  3. class Singleton{

  4. privatestatic$instance;

  5. privatefunction __construct(){}

  6. staticfunction GetInstance(){

  7. if(empty(self::$instance)){

  8.            self::$instance=new Singleton();

  9.        }

  10. return self::$instance;

  11.    }

  12. }

  13. $s1=Singleton::GetInstance();

  14. $s2=Singleton::GetInstance();

  15. if($s1===$s2){

  16. echo"这是两个相同的实例";

  17. }

  18. else{

  19. echo"这两个实例不同";

  20. }

注意:在unset()该单例对象以后,重新实例化后,里面的属性值还会存在。