예제 #1
0
 /**
  * 浮点数递增
  * @param string $key   键名
  * @param float $float  递增步长
  * @return float|false  递增后的值,失败返回false
  */
 public function incrByFloat($key, $float)
 {
     if ($this->driver->checkDriver()) {
         if (method_exists($this->driver, 'incrByFloat')) {
             return $this->driver->incrByFloat($key, $float);
         } else {
             if (!is_numeric($float)) {
                 return false;
             }
             $value = $this->driver->get($key);
             if ($value !== false && !is_numeric($value)) {
                 return false;
             }
             if ($this->driver->set($key, $value += $float)) {
                 return $value;
             }
             return false;
         }
     }
     if ($this->driver->isFallback() && $this->type !== self::$config['fallback']) {
         return $this->driver->backup()->incrByFloat($key, $float);
     }
     return false;
 }