0

我不知道为什么会这样,下面是我的代码。我怀疑它与范围有关,但是我可以 var_dump $items 就好了。

<?php
/*
* Setup the API scripts.
*/
require (dirname(__FILE__).'/vesu/SDK/Gw2/Gw2SDK.php');
require (dirname(__FILE__) .'/vesu/SDK/Gw2/Gw2Exception.php');

use \vesu\SDK\Gw2\Gw2SDK;
use \vesu\SDK\Gw2\Gw2Exception;
// Request a new instance of the API
$gw2 = new Gw2SDK(dirname(__FILE__).'/cache/items/', 604800);

// End of code header
function refreshCache($gw2){
    $i=0;
    $items = $gw2->getItems();
    #var_dump($items);
    foreach($items as $itemId){
        var_dump($itemsId);
        $item = $gw2->queryItemDetails($itemId);
        var_dump($item);
        $itemName = $item->name;
        echo "writing " . $itemId . "," . $itemName . "to the cache";
        $i++;
    }
    echo "Added " . $i . " Items to the cache.";
}
refreshCache($gw2);
?>
4

2 回答 2

1

你在打电话var_dump($itemsId);

你的 foreach 循环是$itemId(最后没有 s !)

编辑:对不起,没有看到它被回答!

于 2013-08-20T21:02:55.843 回答
0

当您复制调试代码时,您只是犯了一个错误:

var_dump($items);

到第二个地方,然后你把它变成:

var_dump($itemsId);
              ^- copied but forgotten to remove "s" from earlier

因此,下次您复制和粘贴代码时,您需要更加小心。从你自己的错误中学习你倾向于解决哪些问题。

并且var_dump()很讨厌调试,请改用步进调试器和单元测试。

于 2013-08-20T21:04:59.380 回答