我使用 PHP 速记加法运算符来计算特定 id 在多维数组中出现的次数:
$source['tally'] = array();
foreach ($items as $item) {
$source['tally'][$item->getId()] += 1;
}
第一次遇到新 ID 时,它将其“tally”值设置为 1,然后每次找到该值时都会递增该值。
代码工作完美(我得到了正确的总数),但是 PHP 每次找到新的 id 时都会给我一个“ undefined offset ”通知。
我知道我可以关闭 php.ini 中的通知,但我想 PHP 不认可我的技术肯定是有原因的。
像这样动态创建新的关键点/偏移量是否被认为是不好的做法,我应该采取更好的方法吗?
请注意:为了帮助澄清以下初步反馈,我确实理解发出通知的原因。我的问题是我是否应该对此采取行动,或者只是接受这个通知。如果我的问题不够清楚,请道歉。
最佳答案
如果您只是想隐藏通知,可以使用error control operator :
$source['tally'] = array();
foreach ($items as $item) {
@$source['tally'][$item->getId()]++;
}
但是,您通常应该初始化变量,在本例中通过在循环内添加以下代码:
if (!isset( $source['tally'][$item->getId()] ))
{
$source['tally'][$item->getId()] = 0;
}
关于PHP 速记加法运算符 - undefined offset ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8132410/