1

このクラスを持っています:

class Cacher
{
    private static $memcacheObj = NULL;

    public static function GetInstance()
    {
        if (self::$memcacheObj === NULL) 
        {
            self::$memcacheObj = new Memcache;
            self::$memcacheObj->addServer(Configs::memcache_addr);
        }
        return self::$memcacheObj;
    }

    public static function Set($key, $var, $flag = 0, $expire = 0)
    {
        self::GetInstance()->set($key, $var, 0, $expire);
    }

    public static function Get($key, $flag = 0)
    {
        self::GetInstance()->get($key);
    }
}

このように使用すると、ページを更新するときに Cacher::Get から何も取得されず、機能しません:

$keyValue = Cacher::Get('key_name');
if(empty($keyValue))
{
    Cacher::Set('key_name', 'key_value', 0, 0);
}
else
{
    echo "Got value : $keyValue";
}

ただし、以下のコードは機能します。

$keyValue = Cacher::GetInstance()->get('key_name');
if(empty($keyValue))
{
    Cacher::GetInstance()->set('key_name', 'key_value', 0, 0);
}
else
{
    echo "Got value : $keyValue";
}

誰でもこれについて私を助けることができますか? どうもありがとう!

4

1 に答える 1

2

Getで結果を返していません。する必要があります:

public static function Get($key, $flag = 0)
{
    return self::GetInstance()->get($key);
}
于 2013-02-28T09:34:06.260 に答える