标签 hashtable 下的文章

PHP内核学习:PHP中的HashTable(二)

0x01 前言

之前说过了哈希表的一些基础概念,下面我们看下PHP中哈希表的实现。
首先要明确的是PHP5.*和PHP7的哈希实现是不同的,本文先分析php5.5.28为基础。

0x02 PHP哈希表的实现

了解了哈希表的实现原理之后,要看PHP的哈希表是如何实现的就很容易了,只需要注意下面三点:

  1. 哈希函数如何构造
  2. 哈希冲突如何解决
  3. 操作接口如何实现

阅读全文 >>


PHP内核学习:PHP中的HashTable(一)

本文只讲了哈希表的基础概念等,尚未涉及PHP中哈希表的实现。
不想看,请略过

0x01 前言

HashTable(哈希表)对于PHP来说是一种非常重要的数据结构,PHP的变量、数组、类的属性和方法等都是通过哈希表来实现的。众所周知,PHP7的性能优化也是花了大力气来优化哈希表的实现方式。

相关内容参考鸟哥的PPT

本篇文章开始将陆续的分享关于哈希表和PHP中具体的应用实现。

0x02 关于HashTable(哈希表)

什么是哈希表?哈希表是一种通过哈希函数,将特定的键映射到特定值的一种数据结构,它维护键和值之间一一对应关系。

在数据结构相关书籍中大家可能见过一个词“散列表”,这里所说的散列表就是哈希表。哈希表是将键名Key用哈希函数计算后映射到表中的一个位置,实现直接定位到数据位置,提高访问速度。

理想情况下,哈希表的时间复杂度是O(1),数据项可以在哈希表长度无关的情况下,通过哈希函数hash(key)出一个值,然后在固定时间内定位到一个槽(bucket,表示哈希表中一个位置),时间主要消耗在哈希函数的计算和槽的定位上。

阅读全文 >>