【发布时间】:2023-01-27 08:53:03
【问题描述】:
我必须在一个旧的 php 项目中执行一个大的代码修复。 问题如下:我有一个数字语句,其中代码尝试将整数添加到未初始化的多维数组,如下所示:
$array_test['first']['two']['three'] += 10;
但$数组测试声明如下:
$array_test = array();
这种情况在项目中给了我很多警告,因为这种代码模式发生了 16k 次。
有什么办法可以解决这个问题,比如添加这样的语句:
if (!isset($array_test['first']['two']['three']))
{
$array_test['first']['two']['three']=0;
}
然后
$array_test['first']['two']['three'] += 10;
但我想只在一个代码行中完成它(对于两个语句,if isset 和增量),以便在我的项目中进行大而安全的替换。
有人能帮我吗? 谢谢,对不起我的英语。
【问题讨论】:
-
您走在正确的轨道上,但您的
isset看得太远了。$array_test甚至还没有设置['first'],但您正在检查几种方式。一切都需要一步一步来。$array_test['first'] = array();然后是$array_test['first']['two'] = array();等等。一旦声明了所有级别,您就可以初始化为 0$array_test['first']['two']['three']=0;并且您的+=应该可以工作。 -
我不同意上面的评论。您不需要实例化所有父级别。看我的回答。
标签: php arrays warnings declaration multi-dimensional-scaling