-2

我已经能够使用这个缓存类的存储功能,但我无法从存储的数组中检索某个项目。

$c->setCache("$appid")
  ->store("$appid", array(
        'name'  => "$gname",
        'price' => "$price",
        'logo'  => "$glogo",
        'link'  => "$glink"
            )
    );


$gcache = $c->retrieve("$appid");

$cprice = $gcache->price; //not sure how to retrieve the price value only

https://github.com/cosenary/Simple-PHP-Cache

这是完整的代码,我似乎无法从存储的数组中获取价格:

    <?php

    require_once 'cache.class.php';

    // Setup 'default' Cache
    $c = new Cache();

    $glist = "http://steamcommunity.com/id/aksn1p3r/games?tab=all&xml=1";
    $gxml = simplexml_load_file($glist);
    $tprice = 0;
    $i = 0; //just used to exit loop after 2 executions

    foreach($gxml->games->game as $game) {

        if($i >= 2) {
            break;
        }

        $appid = $game->appID;
        $glink = $game->storeLink;
        $gname = $game->name;
        $glogo = $game->logo;

        $gjson = 'http://store.steampowered.com/api/appdetails/?appids=' . $appid;
        $fgc = file_get_contents($gjson);
        $jd = json_decode($fgc, true);

        $gdata = $jd[intval($appid)]['data']; //$appid needs to be integer here, not string

        $gdesc = $gdata['about_the_game'];
        $gprice = $gdata['price_overview']['final'];
        $price = number_format($gprice / 100, 2);

    $c->setCache("$appid")
      ->store("$appid", array(
            'name'  => "$gname",
            'price' => "$price",
            'logo'  => "$glogo",
            'link'  => "$glink"
                )
        );

// this part is where I dont understand how to get the price I stored.

    $cprice = $c->retrieve["$appid"]['price']; 


    $tprice += $cprice;


    $i++;

    }

    echo 'Total games: ' .$i. ' <br>';
    echo 'Total Price: ' .$tprice;

    ?>
4

1 回答 1

2

你正在存储array期望得到object

代替

$gcache->price;

$gcache['price'];
于 2013-05-29T13:26:39.717 回答