Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用加号等于运算符时出现未定义的索引错误_Php - Fatal编程技术网

Php 使用加号等于运算符时出现未定义的索引错误

Php 使用加号等于运算符时出现未定义的索引错误,php,Php,我正在处理另一个开发人员的旧代码,这里有大量的注意事项:当使用+=运算符设置数据时,会出现未定义的索引错误。实际上,数组中尚未设置索引,因此会生成错误 例如: $myArray = array(); $myValue = 1; for ($i = 1; $i <= 10; $i++) { $myArray['test'] += 1; } $myArray=array(); $myValue=1; 对于($i=1;$i来说,这稍微短了一点,但如果您进行了许多编辑,可能仍然有点复杂

我正在处理另一个开发人员的旧代码,这里有大量的注意事项:当使用+=运算符设置数据时,会出现未定义的索引错误。实际上,数组中尚未设置索引,因此会生成错误

例如:

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

对于($i=1;$i来说,这稍微短了一点,但如果您进行了许多编辑,可能仍然有点复杂

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

}
$myArray=array();
$myValue=1;

对于($i=1;$iOld/Deprecaded/Unrecommended,但最短的解决方案是

@$myArray['test'] += $myValue;

如果您使用的是PHP7及更高版本,则可以使用使此代码更干净

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

对于($i=1;$i您可以选择关闭PHP通知吗?生产服务器上的所有错误都已关闭。我只是在不得不在开发服务器上编辑某些内容后才注意到这些错误。那么忽略这些错误可以吗?
array\u key\u存在
+
isset
,如果您想以真正的核心方式执行;)我会尽量避开它们。如果你一般都避开它们,你得到的(出乎意料地)是非常有帮助的。可能是重复的感谢,这似乎足够简单,值得重写一切。这是黑魔法吗?它到2021年仍然有效。不要这样做!(沃尔夫说“未推荐”。)如果有人来用myFunc()替换$myValue,并且该函数出现错误,这将吞噬错误。这是非常糟糕的做法!
@$myArray['test'] += $myValue;
$myArray = [];
$myValue = 1;
for ($i = 1; $i <= 10; $i++) 
{
    $myArray['test'] = $myValue + ($myArray['test'] ?? 0);
}