/** * 浮点数递增 * @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; }