首页 > 代码库 > PHP之singleInstance

PHP之singleInstance

 1 <?php
 2     //单例:一个类只有一个对象。
 3     //限制该类得到更多的对象,只允许产生一个对象。,一个对象就可完成所有对象的功能,目的是为了节约成本。这就是单例模式
 4     
 5     /*
 6         function func(){
 7             static $name; //局部静态变量,根据函数生命周期来进行计算,下次调用会继续存在,
 8         }
 9         
10         class test{
11             static $name; //属于静态类属性。 
12         }
13 
14     */
15 
16     class MySQLDB{
17         //声明一个静态变量存储对象
18         private static $_instance;
19 
20         //声明构造为私有不让外界new对象
21         private function __construct(){
22 
23         }
24 
25         //给定一个类方法不让让类外直接通过类名去访问
26         public static function getInstance(){
27 
28             //判断对象是否被实例化
29             if (!isset(static::$_instance)) {
30                 //if(! (static::$_instance instanceof static)) //用 对象运输符号 instanceof做判断
31                 //不存在对象,new一个对象并返回给私有静态变量
32                 static::$_instance = new static;
33             }
34 
35             //返回给静态变量存储
36             return static::$_instance;
37         }
38 
39         //为了防止外界的克隆 把私有魔术方法 
40         private function __clone(){
41 
42         }
43     }
44 
45 
46     $dao = MySQLDB::getInstance();
47 
48     var_dump($dao);
49 
50     $dao1 = MySQLDB::getInstance();
51 
52     var_dump($dao1);
53 
54     // $dao2 = clone $dao;  //运行保存/**/

 

PHP之singleInstance