【问题标题】:PHP arrays: If I skip pointers, do they occupy RAMPHP 数组:如果我跳过指针,它们会占用 RAM
【发布时间】:2014-07-29 01:23:23
【问题描述】:

举个例子:

<?php
$a[7]=0;
$a[1449]=1;
?>

有多少对象占用内存? 2 或 1449 个对象?

【问题讨论】:

    标签: php arrays size ram


    【解决方案1】:

    PHP 数组都是关联数组,即使您使用数字索引。它们是使用哈希表实现的。元素的数量是足以容纳所有元素的 2 的最小幂。因此,此时将有 2 个元素的空间。如果添加另一个元素,它会将其重新分配给 4。

    这里讨论一下 PHP 如何实现数组:

    http://nikic.github.io/2012/03/28/Understanding-PHPs-internal-array-implementation.html

    【讨论】:

    • 谢谢!!。现在很清楚它不会初始化数组中的 1449 个值!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多