如何从内存缓存获取数组 |.PHP


How to get an array from memcache | PHP

我对memcache有一点问题。

我的代码:

$var_key = $memcache->get($_POST['link']);
if(empty($var_key)) {
    foreach($var_key as $value) {
        $result['link_download'] = $value['link_download']; // doens't work
        $result['discription'] = $value; // it works
    }
}
else {
    foreach($html->find('.class') as $value) {
        $result['link_download'] = pq($value)->find('a:eq(1)')->attr('href');
        $result['discription'] = pq($value)->find('tr:eq(0) > td:eq(1)')->html(); 
    }
}
if(empty($var_key)) {
    $memcache->replace($_POST['link'], $result); 
    $memcache->set($_POST['link'], $result, false, 1*60);
}       

为什么$value['link_download']$value['discription']不起作用,而只是$value完美地工作?

很丑,但可以工作

$var_key = $memcache->get($_POST['link']);
$var_key = array(0=>$var_key);
if (is_array($var_key[0]) AND count($var_key[0]) > 0) {
...

。所以不是真的推荐,只是一个修复程序,使用您当前拥有的代码而无需进行太多更改!

。上面这段代码的理由在我的评论中给出(对于那些看不懂的人)。