php - 在 PHP 中初始化子数组是否有必要或有用?

标签 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'];
}

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

最佳答案

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

关于php - 在 PHP 中初始化子数组是否有必要或有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45913984/

相关文章:

php未将数据插入mysql数据库

php - 使用xml缓存数据

PHP时间问题

javascript - 操纵 JSX 元素的子集合

javascript - 弄清楚如何为诸如push、indexOf之类的函数设置动态变量的问题

适用于 Android 的 PHP Google OAuth2 后端

php - 学习mysqli和pdo

php - 取消设置引用的数组项

javascript - 如何检查一个单词是否由不同数组中的字母组成

无法将参数存储为数组并在 C 中打印它们