已采纳回答 / 陈雷
网上的资料非常多, 我转一篇http://www.cnblogs.com/wuyuegb2312/archive/2013/06/08/3126510.html 你看看哈, 有问题可以一起探讨。
2019-01-25
已采纳回答 / 陈雷
问题一:$arr[2]取得值是‘abc’还是‘bar’? 使用$arr[2]取的值还是‘abc’ 但是请注意,在底层的hashtable中,abc被放在第1个位置,当我们通过$arr[2]取值的时候, h值是2,2|-8=-6 从前面的索...
2019-01-03
讲师回答 / 陈雷
可以这么简单的理解:1、对于key是数字的,就不用涉及到hash运算,此时使用的是packed array; 当然如果key的值较大,或者间隔较大,还是会退化成hash array。 packed array 能够节省索引部分占用的内存,是一个性能上的优化;2、对于key是非数字的,必须用hash算法进行计算出来它所在bucket的位置,那么索引数组是必不可少的,只能是hash array。这是底层的实现,对于我们写php代码,需要关注的点是对于业务中的大数组,有没有可能设计一些算法,让它满足packe...
2018-12-19
最新回答 / weibo_雷神伤感_0
结构体(使用关键字 struct),是C语言里的东西,C语言不是面向对象的。C语言发明时候,还没有面向对象概念。后来出现语言C++,Java,C#等为标准,你可以把结构体和类(使用关键字class)对比起来。不难发现,结构体是公有的,数据和函数都可以被结构体外函数使用。在现在软件工程理论里,这被认为是不规范。所以后期语言都有class,默认私用。
2018-12-17