1. static inline ulong zend_inline_hash_func(char *arKey, uint nKeyLength)
2. {
3. register ulong hash = 5381;
4.
5. /* variant with the hash unrolled eight times */
6. for (; nKeyLength >= 8; nKeyLength -= 8) {
7. hash = ((hash << 5) + hash) + *arKey++;
8. hash = ((hash << 5) + hash) + *arKey++;
9. hash = ((hash << 5) + hash) + *arKey++;
10. hash = ((hash << 5) + hash) + *arKey++;
11. hash = ((hash << 5) + hash) + *arKey++;
12. hash = ((hash << 5) + hash) + *arKey++;
13. hash = ((hash << 5) + hash) + *arKey++;
14. hash = ((hash << 5) + hash) + *arKey++;
15. }
16. switch (nKeyLength) {
17. case 7: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
18. case 6: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
19. case 5: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
20. case 4: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
21. case 3: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
22. case 2: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
23. case 1: hash = ((hash << 5) + hash) + *arKey++; break;
24. case 0: break;
25. EMPTY_SWITCH_DEFAULT_CASE()
26. }
27. return hash;
28. }
2
A
답변
4
모든 해시 테이블은 해시 알고리즘을 사용합니다. PHP의 해시 테이블은 예를 들어 배열과 기호 테이블을 구현하는 데 사용됩니다. 에서 지적한 알고리즘은 DJBX33A (Daniel J. Bernstein, Times 33 with Addition)입니다.
1
당신은이 기능이 사용되는 경우 볼이 링크를 사용할 수 있습니다 이 기능을 사용 (표준 포함) 3 개의 PHP 확장이 같은 http://lxr.php.net/search?q=+zend_inline_hash_func&defs=&refs=&path=&hist=&project=PHP_5_4
보인다.
관련 문제
- 1. 이러한 PHP 함수는 WordPress의 특정 페이지에 어떻게 적용됩니까?
- 2. 해시 함수는 30 자의 코드를 생성합니까?
- 3. PHP Sum 함수는
- 4. PHP : 함수는 배열
- 5. PHP 함수는 어떻게 참조합니까?
- 6. 재귀 함수는 PHP
- 7. Javascript가 html을 수정하는 데 사용하는 함수는 무엇입니까?
- 8. mysqli가 mysql 대신에 사용하는 함수는 무엇입니까?
- 9. 문자열의 끝을 잘라 내야하는 PHP 함수는 무엇입니까?
- 10. 쿠키에서 잘못된 문자를 변환하는 PHP 함수는 무엇입니까?
- 11. 이러한 PHP include 구문의 차이점은 무엇입니까?
- 12. 이 문자열에서 사용 된 해시 알고리즘을 찾을 수 있습니까?
- 13. XML 해시 맵하기 - PHP
- 14. 해시 코드를 색인 대신 해시 테이블에서 사용하는 이유는 무엇입니까?
- 15. Rails authlogic 암호 해시 알고리즘을 사용하여 루비 전용
- 16. 배열에서 문자열을 잘라내는 함수는 무엇입니까?
- 17. VLList를 사용하는 해시 테이블
- 18. 해시 테이블을 사용하는 방법?
- 19. 해시 테이블을 컬렉션으로 사용하는 일반적인 목적은 무엇입니까?
- 20. 코드 해시 함수는 - 이미 기능을 가지고 있지만 내 HTML 페이지에
- 21. PHP 해시()는 WHIRLPOOL을 기본적으로 지원합니까?
- 22. PHP 해시 제거
- 23. PHP XML과 해시/연관 배열
- 24. PHP checkdnsrr 함수는 닷컴 도메인에서만 작동합니까?
- 25. 데이터베이스의 공간을 절약하기 위해 해시 알고리즘을 사용할 수 있습니까?
- 26. PHP 빈 ($ val에) 함수는 값이 0
- 27. 어떻게 다른 PHP 배열에서 PHP 해시 배열을 만들 수 있습니까? 이 또는 바로 가기 방법을 할 수있는 PHP 함수는
- 28. PHP의 GIS 공간 함수는 무엇입니까?
- 29. 텍스트 상자에서 단어 줄 바꿈 알고리즘을 다시 사용하는 방법은 무엇입니까?
- 30. jquery에서 트리거되는 함수는 무엇입니까?
PHP 사용자를위한 api가 없기 때문에 PHP 내부에서만 사용됩니다. – ajx
나는 이것에 대해서도 답할 것이지만, 확실하지 않고 소스를 찾기 위해 길을 잃었다. 확인한 것처럼 보입니다. +1 – BoltClock
@ajx 사용자 영역에 대한 API는 없습니다. – Artefacto