2

知道 PHP 的 memcached 模块是否支持某种isset()方法吗?

以下案例:

Memcached::set('foo', false);

if(Memcached::get('foo') === false) {
        // Set or not set?
}
4

1 回答 1

5

根据文档

if($memcached->get('var') === false && $memcached->getResultCode() == Memcached::RES_NOTFOUND){
   //not set
}

您当然可以扩展Memcached对象以包含它,但是,您不能在不获取它的情况下询问它是否已设置(较大值的一些开销):

class YourMemcached extends Memcached {
    function var_isset($var){
       return $this->get($var)!==false || $this->getResultCode() != Memcached::RES_NOTFOUND;
    }
}

(您不能将isset其用作方法名称,因为它显然是一种语言结构)。

于 2013-06-06T17:52:22.733 回答