Creating the Singleton design pattern in PHP5

前端 未结 21 2073
猫巷女王i
猫巷女王i 2020-11-22 04:21

How would one create a Singleton class using PHP5 classes?

21条回答
  •  日久生厌
    2020-11-22 05:09

    I have written long back thought to share here

    class SingletonDesignPattern {
    
        //just for demo there will be only one instance
        private static $instanceCount =0;
    
        //create the private instance variable
        private static $myInstance=null;
    
        //make constructor private so no one create object using new Keyword
        private function  __construct(){}
    
        //no one clone the object
        private function  __clone(){}
    
        //avoid serialazation
        public function __wakeup(){}
    
        //ony one way to create  object
        public static  function  getInstance(){
    
            if(self::$myInstance==null){
                self::$myInstance=new SingletonDesignPattern();
                self::$instanceCount++;
            }
            return self::$myInstance;
        }
    
        public static function getInstanceCount(){
            return self::$instanceCount;
        }
    
    }
    
    //now lets play with singleton design pattern
    
    $instance = SingletonDesignPattern::getInstance();
    $instance = SingletonDesignPattern::getInstance();
    $instance = SingletonDesignPattern::getInstance();
    $instance = SingletonDesignPattern::getInstance();
    
    echo "number of instances: ".SingletonDesignPattern::getInstanceCount();
    

提交回复
热议问题