天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP中用hash實現的數組

php中使用最多的非Array莫屬了,那Array是如何實現的?在php內部Array通過一個hashtable來實現,其中使用鏈接法解決hash沖突的問題,這樣最壞情況下,查找Array元素的復雜度為O(N),最好則為1.
而其計算字符串hash值的方法如下,將源碼摘出來以供查備:
復制代碼 代碼如下:
static inline ulong zend_inline_hash_func(const char *arKey, uint nKeyLength)
{
register ulong hash = 5381;                                                   //此處初始值的設置有什么玄機么?
/* variant with the hash unrolled eight times */
for (; nKeyLength >= 8; nKeyLength -= 8) {                         //這種step=8的方式是為何?
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;                         //比直接*33要快
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;
}
switch (nKeyLength) {
case 7: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */                             //此處是將剩余的字符hash
case 6: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
case 5: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
case 4: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
case 3: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
case 2: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */                    
case 1: hash = ((hash << 5) + hash) + *arKey++; break;
case 0: break;
EMPTY_SWITCH_DEFAULT_CASE()
}
return hash;//返回hash值
}

ps:對于以下函數,仍有兩點不明:
hash = 5381設置的理由?
這種step=8的循環方式是為了效率么?

php技術PHP中用hash實現的數組,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 无码任你躁久久久久久久 | 久久只有这里有精品4 | 精品国产成人AV在线看 | 免费国产成人高清在线观看视频 | 毛片在线全部免费观看 | 麻豆成人AV久久无码精品 | 中文在线日韩亚洲制服 | 青青草伊人久久 | 国产亚洲精品久久精品69 | 儿子你得太大了慢点插 | 国产视频精品在线偷拍 | 亚洲欧美中文日韩v在线 | 国内精品久久久久影院老司 | 久艾草在线精品视频在线观看 | 久久国产精品福利影集 | 青青青青久久久久国产的 | 成人免费肉动漫无遮网站 | 国产精品青青草原app大全 | 亚洲字幕在线观看 | 亚洲一区在线视频观看 | 视频三区 国产盗摄 | 亚洲精品高清在线 | 最新国产成人综合在线观看 | 被吊起玩弄的女性奴 | gogo亚洲肉体艺术照片9090 | 99久久全国免费久久爱 | 久久亚洲精品AV无码四区 | 国产学生无码中文视频一区 | 久久免费黄色 | 挺进绝色老师的紧窄小肉六 | 一级毛片全部免 | 一个人视频日本在线观看 | 爱豆剧果冻传媒在线播放 | 伦理片在线线手机版韩国免费6 | 任你躁精品一区二区三区 | 97精品伊人久久大香线蕉app | 亚洲欧美日韩高清专区 | 国精产品一区二区三区有限公司 | 久久毛片视频 | 99re久久免费热在线视频手机 | 97精品国产高清在线看入口 |