国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

淺談PHP源碼十:關于array_keys,array_values函數

2020-03-22 20:28:08
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了關于淺談PHP源碼十:關于array_keys,array_html' target='_blank'>values函數,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

新年的第一篇文章,首先給各位朋友拜年

今天有空看了下代碼,寫點東西,留作紀念!

array array_keys ( array input [, mixed search_value [, bool strict]] )

array_keys() 返回 input 數組中的數字或者字符串的鍵名。

如果指定了可選參數 search_value,則只返回該值的鍵名。否則 input 數組中的所有鍵名都會被返回。自 PHP 5 起,可以用 strict 參數來進行全等比較(===)。

array_keys 函數的實現在standard/array.c文件的2416行 PHP_FUNCTION(array_keys)

程序依照PHP一貫的風格,先判斷輸入是否正確,如果有第三個參數,則判斷大小的函數使用is_identical_function(默認情況下是使用 is_equal_function函數)
然后初始化返回的數組,遍歷所給的數組,取每個元素的key值,賦值給返回的數組,這個key值又分為數字和字符串兩種,其中最主要的函數是hash操作函數zend_hash_get_current_key_ex(取當前元素的key值)

 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- // 存儲數字key值 return HASH_KEY_IS_LONG; return HASH_KEY_NON_EXISTANT;}

對于此函數的理解主要是對bucket定義的了解

與bucket相關的內容請移步http://www.survivalescaperooms.com/php-weizijiaocheng-405316.html

array array_values ( array input )

array_values() 返回 input 數組中所有的值并給其建立數字索引。
array_values 函數與array_keys的函數實現基本類似,并且還少了一個zend_hash_get_current_key_ex操作和判斷值類型的操作,

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !

相關推薦:

淺談PHP源碼九:關于array_unshift, array_push的介紹

淺談PHP源碼八:關于array_pop, array_shift的介紹

淺談PHP源碼七:關于nl2br, ltrim, rtrim, trim函數

以上就是淺談PHP源碼十:關于array_keys,array_values函數的詳細內容,PHP教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 方正县| 连城县| 蓬莱市| 德钦县| 沅陵县| 资溪县| 舟曲县| 铅山县| 尚志市| 卢龙县| 美姑县| 宝兴县| 望奎县| 正阳县| 左贡县| 昌黎县| 遂宁市| 陕西省| 巴林左旗| 万宁市| 秭归县| 长汀县| 金塔县| 剑河县| 齐齐哈尔市| 伊宁县| 竹溪县| 拉孜县| 航空| 南平市| 册亨县| 白山市| 吉安市| 化州市| 富源县| 平乐县| 义马市| 富锦市| 峨边| 海口市| 宁城县|