Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.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_Arrays - Fatal编程技术网

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

在PHP中初始化子数组是必要的还是有用的?,php,arrays,Php,Arrays,假设我有一个变量,它是一个初始化的空数组 $cache = []; 此数组中的数据可以这样创建,例如(请原谅粗制滥造的代码和变量/键名称,它们只是为了这个示例而出现的): 由于$cache是一个PHP数组,我不需要将$cache[$row['id']]]]初始化为数组。但是,我有时会遇到这样的代码: for ($row in $someOtherArray) { if (!isset($cache[$row['id']])) { $cache[$row['id']] =

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

$cache = [];
此数组中的数据可以这样创建,例如(请原谅粗制滥造的代码和变量/键名称,它们只是为了这个示例而出现的):

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

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

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

上面,子数组被显式初始化为空数组。它有用吗?例如,它在某种程度上对口译员有帮助吗?还是仅仅是开发人员过于热心?

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

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

可能的重复项
for ($row in $someOtherArray) {
    if (!isset($cache[$row['id']])) {
        $cache[$row['id']] = [];
    }

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