在PHP中初始化子数组是必要的还是有用的?

时间:2017-08-28 07:39:03

标签: php arrays

假设我有一个变量,它是一个初始化的空数组。

$cache = [];

例如,可以像这样创建这个数组中的数据(请原谅粗略的代码和变量/键名,它们只是为了这个例子而在这里):

for ($row in $someOtherArray) {
    $cache[$row['id']][] = $row['data'];
}

由于$cache是一个PHP数组,我不需要初始化$cache[$row['id']]也是一个数组。但是,我有时遇到这样的代码:

for ($row in $someOtherArray) {
    if (!isset($cache[$row['id']])) {
        $cache[$row['id']] = [];
    }

    $cache[$row['id']][] = $row['data'];
}

上面,子数组显式初始化为空数组。它有用吗?例如 - 它是否以某种方式帮助翻译?或者只是开发人员过于热心?

2 个答案:

答案 0 :(得分:4)

就PHP而言,这是不必要的。 PHP将使用$foo[$bar][]语法为您隐式创建任意数量的子数组。业务逻辑可能可能,但不是在这种特定的安排中;这里简直就是多余的。如果值赋值在某种程度上是单独的逻辑,但您仍然希望确保键存在至少一个空数组,那么这是唯一有意义的时间。

答案 1 :(得分:0)

将变量初始化为数组后,可以对该变量使用特定于数组的方法。例如array_push(),array_map()等..