php - 使用加号等于运算符时出现 undefined index 错误

标签 php

我正在处理另一个开发人员的旧代码,并且有大量的注意:使用 += 运算符设置数据时出现 undefined index 错误。本质上,索引还没有在数组中设置,所以会产生错误。

例子:

$myArray = array();
$myValue = 1;
for ($i = 1; $i <= 10; $i++) 
{
    $myArray['test'] += 1;
}

由于尚未设置测试索引,第一次运行时会产生错误。

我知道我可以使用以下代码消除此错误:

$myArray = array();
$myValue = 1;
for ($i = 1; $i <= 10; $i++) 
{
    if ( ! isset($myArray['test']) )
    {
        $myArray['test'] = $myValue;
    } 
    else 
    {
        $myArray['test'] += $myValue;
    }
}

但是,大约有 50 项这样的事情需要改变。是否值得写所有这些 isset 语句,还是有更好的方法我不知道?

编辑:我应该注意数组索引并不总是相同的,有时没有设置,所以我不能在这种情况下预设索引以避免错误。

最佳答案

这有点短,但如果你有很多编辑,可能还是有点复杂。

$myArray = array();
$myValue = 1;
for ($i = 1; $i <= 10; $i++) 
{
    isset($myArray['test']) ? $myArray['test'] += $myValue : $myArray['test'] = $myValue;

}

你也可以写一个全局函数(未测试)..

$myArray = array();   
$myValue = 1;
for ($i = 1; $i <= 10; $i++) 
{
    increment($myArray['test'], $myValue);
}

function increment(&$var, $inc){
    $var = isset($var) ? $var += $inc : $var = $inc
}

关于php - 使用加号等于运算符时出现 undefined index 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13184720/

相关文章:

java - HSQL、内存数据库、Java 和 PHP 问题

php - 从特定数据库读取所有记录并打印它们的最佳方法是什么?

php - 运行高负载 php 文件而不损害服务器性能

php - 如果字母或单词匹配,MySQL 返回所有内容?

javascript - 使用 Javascript 上传多个文件

php - 通过PHP/MySQL上传图片

php - 用于自定义产品图像缩略图的 Hook

php - 将自定义 URL 与 ShareThis 社交分享插件一起使用

php - mysql_fetch_array ,日期分隔

javascript - 条形码:生成具有设置宽度的代码