이 글에서는 주로 PHP 소스 코드 10에 대해 소개합니다: array_keys 및 array_values 함수에 대해 특정 참조 값이 있으므로 이제 필요한 친구들이 참조할 수 있도록 공유합니다
#🎜 🎜#New Year 첫 번째 기사는 우선 모든 친구들에게 새해 복 많이 받으세요 오늘은 코드를 읽고 기념품으로 무언가를 쓰는 시간을 가졌습니다! array array_keys (array input [, Mixed search_value [, bool strict]] )array_keys() 입력 배열에 있는 숫자 또는 문자열의 키 이름을 반환합니다. 선택적 매개변수 search_value를 지정하면 해당 값의 키 이름만 반환됩니다. 그렇지 않으면 입력 배열의 모든 키가 반환됩니다. PHP 5부터 엄격한 매개변수를 사용하여 동등 비교(===)를 수행할 수 있습니다. array_keys 함수의 구현은 표준/array.c 파일의 2416번째 줄에 있습니다. PHP_FUNCTION(array_keys)프로그램은 일반적인 PHP 스타일을 따릅니다. 먼저 입력이 정확하고, 세 개의 매개변수가 있는 경우 크기를 결정하는 함수는 is_identical_function을 사용합니다(기본적으로 is_equal_function 함수가 사용됩니다) 그런 다음 반환된 배열을 초기화하고, 주어진 배열을 순회하고, 각각의 키 값을 가져옵니다. 이 키 값은 숫자와 문자열의 두 가지 유형으로 구분됩니다. 가장 중요한 기능은 해시 연산 함수 zend_hash_get_current_key_ex(현재 요소의 키 값 가져오기)
ZEND_API int zend_hash_get_current_key_ex(HashTable *ht, char **str_index, uint *str_length, ulong *num_index, zend_bool duplicate, HashPosition *pos){ Bucket *p; p = pos ? (*pos) : ht->pInternalPointer; IS_CONSISTENT(ht); if (p) { if (p->nKeyLength) { // 数字型的nKeyLength长度为0 if (duplicate) { *str_index = estrndup(p->arKey, p->nKeyLength - 1); } else { *str_index = p->arKey; // /* arKey存储key名称(字符串类型的key)必须是最后一个成员,*/ } if (str_length) { *str_length = p->nKeyLength; } return HASH_KEY_IS_STRING; } else { *num_index = p->h; // 存储数字key值 return HASH_KEY_IS_LONG; } } return HASH_KEY_NON_EXISTANT;}#🎜입니다. 🎜#이 함수에 대한 이해는 주로 버킷 정의에 관한 것입니다.
에 대한 자세한 내용은 http://www.php.cn/php-weizijiaocheng-405316.html
#을 참조하세요. 🎜🎜#array array_values (배열 입력)# 🎜🎜#array_values()는 입력 배열의 모든 값을 반환하고 숫자로 색인화합니다.
array_values 함수는 기본적으로 array_keys의 함수 구현과 유사하며, zend_hash_get_current_key_ex 연산과 값 유형을 결정하는 연산도 부족합니다. 위는 이 내용의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트를 주목해 주세요!
관련 권장 사항:
# 🎜🎜 # PHP 소스 코드 8에 대한 간략한 토론: array_pop, array_shift 소개
PHP 소스 코드 7에 대한 간략한 토론: nl2br, ltrim, rtrim, 트림 기능 정보
위 내용은 PHP 소스 코드 10에 대한 간략한 토론: array_keys, array_values 함수에 대하여의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!