Undefinet偏移错误

时间:2015-09-11 10:10:12

标签: php undefined offset

我的代码有时会给代码undefinet偏移错误。

Error: 
[03-Sep-2015 13:06:44] NOTICE: "Undefined offset: 6"

File: /home/mdmeds/public_html/includes/pages/game/class.ShowBuildingsPage.php | Line: 111

[04-Sep-2015 17:38:57] NOTICE: "Undefined offset: 8"

File: /home/mdmeds/public_html/includes/pages/game/class.ShowBuildingsPage.php | Line: 111

这是代码的一部分

$Element        = $CurrentQueue[$QueueID - 2][0]; /**this give the error*/
        $BuildEndTime   = $CurrentQueue[$QueueID - 2][3];
        unset($CurrentQueue[$QueueID - 1]);
        $NewQueueArray  = array();
        foreach($CurrentQueue as $ID => $ListIDArray)
        {               
            if ($ID < $QueueID - 1) {
                $NewQueueArray[]    = $ListIDArray;
            } else {
                if($Element == $ListIDArray[0] || empty($ListIDArray[0]))
                    continue;

                $BuildEndTime       += BuildFunctions::getBuildingTime($USER, $PLANET, $ListIDArray[0]);
                $ListIDArray[3]     = $BuildEndTime;
                $NewQueueArray[]    = $ListIDArray;             
            }
        }

我阅读了很多关于此类错误的文章,但我不知道如何修复我的代码。有谁可以帮助我吗 ?

1 个答案:

答案 0 :(得分:0)

在这段代码$CurrentQueue[$QueueID - 2][0]中,密钥是根据$QueueID动态生成的。当您收到错误时,表示指定的键在数组$CurrentQueue中不可用。

为避免此类运行时异常,您可以执行类似此操作

if (!empty($CurrentQueue[$QueueID - 2])) {
  // the actual functionality goes here.
}