zoukankan      html  css  js  c++  java
  • 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;  //运行保存/**/
  • 相关阅读:
    django2.0+连接mysql数据库迁移时候报错
    微信小程序路由跳转
    洛谷P3144 [USACO16OPEN]关闭农场Closing the Farm
    洛谷P3143 [USACO16OPEN]钻石收藏家Diamond Collector
    洛谷P2677 超级书架 2
    洛谷P2676 超级书架
    洛谷P3146 [USACO16OPEN]248
    洛谷P1396 营救
    洛谷P1772 [ZJOI2006]物流运输
    P3102 [USACO14FEB]秘密代码Secret Code
  • 原文地址:https://www.cnblogs.com/sharecorner/p/6129296.html
Copyright © 2011-2022 走看看