*/
public function inc($key, $step = 1) {
$this->add($key, 0);
- return apcu_inc($this->getPrefix() . $key, $step);
+ /**
+ * TODO - hack around a PHP 7 specific issue in APCu
+ *
+ * on PHP 7 the apcu_inc method on a non-existing object will increment
+ * "0" and result in "1" as value - therefore we check for existence
+ * first
+ *
+ * on PHP 5.6 this is not the case
+ *
+ * see https://github.com/krakjoe/apcu/issues/183#issuecomment-244038221
+ * for details
+ */
+ return apcu_exists($this->getPrefix() . $key)
+ ? apcu_inc($this->getPrefix() . $key, $step)
+ : false;
}
/**
* @return int | bool
*/
public function dec($key, $step = 1) {
- return apcu_dec($this->getPrefix() . $key, $step);
+ /**
+ * TODO - hack around a PHP 7 specific issue in APCu
+ *
+ * on PHP 7 the apcu_dec method on a non-existing object will decrement
+ * "0" and result in "-1" as value - therefore we check for existence
+ * first
+ *
+ * on PHP 5.6 this is not the case
+ *
+ * see https://github.com/krakjoe/apcu/issues/183#issuecomment-244038221
+ * for details
+ */
+ return apcu_exists($this->getPrefix() . $key)
+ ? apcu_dec($this->getPrefix() . $key, $step)
+ : false;
}
/**