foreach中的未定义变量

时间:2013-08-20 20:59:12

标签: php function

我无法弄清楚为什么会发生这种情况以下是我的代码。我怀疑它与范围有关但是我可以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);
?>

2 个答案:

答案 0 :(得分:1)

您正在呼叫var_dump($itemsId);

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

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

答案 1 :(得分:0)

复制调试代码时,你犯了一个错误:

var_dump($items);

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

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

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

var_dump()发现调试失败,请使用步调试器和单元测试。