Memcache有趣的bug - a:0:{}

时间:2012-06-28 08:12:44

标签: php memcached libmemcache

代码很简单

$mem = $this->memcache->get("memche_".$_SESSION['userid']."_page_".$page);

if(empty($mem)){
// to make another query and save the data to memcache
}
else {
// to get it from memcache
}

但是现在没有数据但是如果我是print_r($ mem),缓存不是空的; 我得到了

a:0:{}

这传递了if语句if(empty())

1 个答案:

答案 0 :(得分:1)

这不是一个错误,你有一个存储在memcache中的空数组。你的数组是空的,而不是引用数组的变量。

var_dump(unserialize('a:0:{}'));
array(0) {
}

你应该检查$ mem是否为假($ mem === FALSE),而不是它是否为空。如果缓存键不存在,则Memcache返回FALSE。