PHP:数组有最大大小吗?
收藏

PHP中的数组有限制吗?

最佳答案

是的,元素的最大数量是有限制的。哈希表结构(数组基本上是哈希表的包装器)的定义如下(PHP 5.3):

typedef struct _hashtable {
    uint nTableSize;
    uint nTableMask;
    uint nNumOfElements;
    ulong nNextFreeElement;
    Bucket *pInternalPointer;   /* Used for element traversal */
    Bucket *pListHead;
    Bucket *pListTail;
    Bucket **arBuckets;
    dtor_func_t pDestructor;
    zend_bool persistent;
    unsigned char nApplyCount;
    zend_bool bApplyProtection;
#if ZEND_DEBUG
    int inconsistent;
#endif
} HashTable;

鉴于

typedef unsigned int uint;

限制是无符号整数的最大大小(在32位OS和大多数64位OS上通常为2 ^ 32-1)。

但是实际上,除了在具有大量RAM和32位int的计算机上,您总是会在遇到问题之前达到内存限制。

    公众号
    关注公众号订阅更多技术干货!