0

コードはとてもシンプルです

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

しかし、今のところデータはありませんが、キャッシュは空ではありません。私は得る

a:0:{}

そして、これは if ステートメントを渡しますif(empty())

4

1 に答える 1

2

これはバグではありません。memcacheに空の配列が保存されています。配列は空であり、配列を参照している変数ではありません。

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

$ memが空であるかどうかではなく、false($ mem === FALSE)であるかどうかを確認する必要があります。キャッシュキーが存在しない場合、MemcacheはFALSEを返します。

于 2012-06-28T08:23:43.050 に答える