PHP在递增之前初始化多维数组

5jvtdoz2  于 2023-01-29  发布在  PHP
关注(0)|答案(1)|浏览(88)

我不得不在一个旧的php项目中执行一个大的代码修复。问题如下:我有一个number语句,其中的代码试图将整数添加到未初始化的多维数组中,如下所示:

$array_test['first']['two']['three'] += 10;

但是**$array_test**是这样声明的:

$array_test = array();

这种情况在项目中给了我很多警告,因为这种代码模式发生了大约16 k次。
有没有办法解决这个问题,比如加一句这样的话:

if (!isset($array_test['first']['two']['three'])) 
{
         $array_test['first']['two']['three']=0;
}

然后

$array_test['first']['two']['three'] += 10;

但是我希望只在一行代码中完成(对于两个语句,if isset和increment),以便在我的项目中进行一个大的安全的替换。
有人能帮帮我吗?谢谢,对不起我的英语。

vs91vp4v

vs91vp4v1#

PHP还没有(可能永远不会)有一个“空合并加法运算符”。
可以通过将空合并为0.Demo来避免isset()调用

$array_test['first']['two']['three'] = ($array_test['first']['two']['three'] ?? 0) + 10;

相关问题