我想写一个封装memcache类继承原始的memcache类 并且把其他的get方法和set方法重写  其中的key 值加一个 版本号content方法连接到localhost 使用memcache_ini()代替 memcache的content方法 

解决方案 »

  1.   

    <?php
     /**
      * 此类为单例模式,取的实例的方法 :$cache=Mcache:getInstance();
      * @author User zhangjie <[email protected]>
      * @date
      *
      */
      class Mcache{
      private static $_instance;
      private static $_connect_type='';
      private $_memcache;  /**
      *私有化构造函数 ,禁止使用关键字new来实例化Mcache类
      */
      private function __construct(){
       if(!class_exists('Memcache')){
       throw new Exception('Class Memcache not exists ');
       }
        $func=self::$_connect_type;
        $this->_memcache=new Memcache();
        $this->_memcache->$func(MEMCACHE_SERVER,MEMCACHE_PORT);
      }
    /**
     *克隆私有化,禁止克隆实例
      */
        function __clone(){}
        /**
         *类的入口,通过此类的静态方法对类进行实例化
         */
         public static function getInstance($type='connect'){      self::$_connect_type=($type=='connect')?$type:'pconnect';
          if (!self::$_instance instanceof self){
          self::$_instance=new self();
          }
          return self::$_instance;
         }     /**
          *把数据添加到缓存
          *param string $key 缓存的key
          *param string |arrary|int ....$value 缓存的数据
          *param int $expire_time 缓存时间
          */
         public function set($key,$value,$expire_time=0){
          if($expire_time>0){
          $this->_memcache->set($key,$value,0,$expire_time);
          }else{
              $this->_memcache->set($key,$value);
          }
         }     /**
          * 从缓存读取数据
          * @package string|array|int ....$key
          */
        public  function get($key){
         return $this->_memcache->get($key);
        }
        /**
         * 从缓存中删除数据
         * @param sting|array|int...$key
         */
        public function del($key){     return $this->_memcache->delete($key);
        }  }
      ?>
      

  2.   

    <?php
     /**
      * 此类为单例模式,取的实例的方法 :$cache=Mcache:getInstance();
      * @author User zhangjie <[email protected]>
      * @date
      *
      */
      class Mcache{
      private static $_instance;
      private static $_connect_type='';
      private $_memcache;  /**
      *私有化构造函数 ,禁止使用关键字new来实例化Mcache类
      */
      private function __construct(){
       if(!class_exists('Memcache')){
       throw new Exception('Class Memcache not exists ');
       }
        $func=self::$_connect_type;
        $this->_memcache=new Memcache();
        $this->_memcache->$func(MEMCACHE_SERVER,MEMCACHE_PORT);
      }
    /**
     *克隆私有化,禁止克隆实例
      */
        function __clone(){}
        /**
         *类的入口,通过此类的静态方法对类进行实例化
         */
         public static function getInstance($type='connect'){      self::$_connect_type=($type=='connect')?$type:'pconnect';
          if (!self::$_instance instanceof self){
          self::$_instance=new self();
          }
          return self::$_instance;
         }     /**
          *把数据添加到缓存
          *param string $key 缓存的key
          *param string |arrary|int ....$value 缓存的数据
          *param int $expire_time 缓存时间
          */
         public function set($key,$value,$expire_time=0){
          if($expire_time>0){
          $this->_memcache->set($key,$value,0,$expire_time);
          }else{
              $this->_memcache->set($key,$value);
          }
         }     /**
          * 从缓存读取数据
          * @package string|array|int ....$key
          */
        public  function get($key){
         return $this->_memcache->get($key);
        }
        /**
         * 从缓存中删除数据
         * @param sting|array|int...$key
         */
        public function del($key){     return $this->_memcache->delete($key);
        }  }
      ?>
      

  3.   

    <?php
     /**
      * 此类为单例模式,取的实例的方法 :$cache=Mcache:getInstance();
      * @author User zhangjie <[email protected]>
      * @date
      *
      */
      class Mcache{
      private static $_instance;
      private static $_connect_type='';
      private $_memcache;  /**
      *私有化构造函数 ,禁止使用关键字new来实例化Mcache类
      */
      private function __construct(){
       if(!class_exists('Memcache')){
       throw new Exception('Class Memcache not exists ');
       }
        $func=self::$_connect_type;
        $this->_memcache=new Memcache();
        $this->_memcache->$func(MEMCACHE_SERVER,MEMCACHE_PORT);
      }
    /**
     *克隆私有化,禁止克隆实例
      */
        function __clone(){}
        /**
         *类的入口,通过此类的静态方法对类进行实例化
         */
         public static function getInstance($type='connect'){      self::$_connect_type=($type=='connect')?$type:'pconnect';
          if (!self::$_instance instanceof self){
          self::$_instance=new self();
          }
          return self::$_instance;
         }     /**
          *把数据添加到缓存
          *param string $key 缓存的key
          *param string |arrary|int ....$value 缓存的数据
          *param int $expire_time 缓存时间
          */
         public function set($key,$value,$expire_time=0){
          if($expire_time>0){
          $this->_memcache->set($key,$value,0,$expire_time);
          }else{
              $this->_memcache->set($key,$value);
          }
         }     /**
          * 从缓存读取数据
          * @package string|array|int ....$key
          */
        public  function get($key){
         return $this->_memcache->get($key);
        }
        /**
         * 从缓存中删除数据
         * @param sting|array|int...$key
         */
        public function del($key){     return $this->_memcache->delete($key);
        }  }
      ?>
      

  4.   

    发那么多遍干什么?
    这已然是个静态类了,你是要对其修改?但有几点不明确
    1、他的get方法和set方法重写 其中的key 值加一个 版本号
    加版本号是什么意思?谁的版本号?数据的吗?2、content方法连接到localhost 使用memcache_ini()代替 memcache的content方法
    他默认就是 content 方法连接的
    memcache_ini()代替.... 是什么意思?
      

  5.   

    1.项目的版本号 我项目名 这些都是常量可以直接获取
    2.我现在不使用memcache的content方法 而是使用mamcache_ini()代替 意思是把memcache的content方法封装 外部不能访问