PHP(zend引擎)如何在内部存储数组?

时间:2013-10-10 16:01:19

标签: php data-structures

我有一个关于PHP如何存储数组值的简单问题:

PHP解释器如何在内部存储一个简单的数组(zvalues)?它是一个连续的记忆空间还是一种链接列表&哈希树(或一些混合,取决于他的大小)?

我问这个是因为PHP中的数组类型可以方便地用作简单的列表,堆栈,队列或某种堆(但我不知道PHP使用什么类型的数据结构来存储它们)。

感谢。

1 个答案:

答案 0 :(得分:2)

内部PHP只使用简单的HashTable。 (首先是哈希查找;碰撞时有一个简单的列表查找。)

顺便说一句,在SPL http://php.net/spl.datastructures中也有一些特殊的类,您可能想要用于特殊的事情......(只有在真正需要时才使用它们......它们大多不值得。)