PHP - 遇到的偏移错误

时间:2014-08-08 21:40:18

标签: php

不确定为什么我收到此错误,因为代码正在运行,我可以看到我预期的数据。

代码

$allSales = array();
foreach ($game['sales'] as $sale) {
  foreach ($sale['values'] as $id => $values) {
    $allSales[$id]+=$values['y'];
  }
}  

错误1

A PHP Error was encountered

Severity: Notice

Message: Undefined offset: 0

Filename: player/game.php

Line Number: 81

错误2(相同代码)

A PHP Error was encountered

Severity: Notice

Message: Undefined offset: 1

Filename: player/game.php

Line Number: 81

1 个答案:

答案 0 :(得分:3)

声明:

$allSales[$id] += $values['y'];

表示获取$allSales[$id]的当前值,为其添加$values['y']的值,并将该结果存储回$allSales[$id]。但是,当您第一次遇到特定$id时,则没有$allSales[$id]。当您尝试获取其当前值时,这会导致警告。

更改为:

if (isset($allSales[$id])) {
    $allSales[$id] += $values['y'];
} else {
    $allSales[$id] = $values['y'];
}

或者你可以在@前加上一行来抑制警告(我知道纯粹主义者会为此而哭泣):

@$allSales[$id] += $values['y'];