PHP -遇到偏移错误


PHP - Offset Error Encountered

不知道为什么我得到这个错误,因为代码正在工作,我可以看到我所期望的数据。

$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

语句:

$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'];