2013-02-28 62 views
1

有这个类:包封物PHP内存缓存设置和获取功能

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的检索什么::获取刷新我的网页时:

$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"; 
} 

任何人都可以帮助我吗?非常感谢!

回答

2

您没有在Get中返回结果。应该是:

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

你说得对。非常感谢。我白痴... – Leo 2013-02-28 09:47:12

+0

我们都有几天我们错过了简单的事情,上帝保佑所以:) – webnoob 2013-02-28 09:48:50