亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP源碼閱讀 array_pop和array_shift函數

2020-03-22 17:33:50
字體:
來源:轉載
供稿:網友
  • 上篇文章介紹了PHP添加元素到數組的函數,那么當然有從數組中刪除元素。array_pop和array_shift只從數組的頭或尾刪除一個元素。經過閱讀源碼,發現這兩個函數的實現都是調用了同一個函數--_phpi_pop來實現從數組中刪除一個數組元素的功能。因此解讀時將這兩個函數一并講了。

    我在github上有對PHP源碼更詳細的注解。感興趣的可以圍觀一下,給個star。PHP5.4源碼注解??梢酝ㄟ^commit記錄查看已添加的注解。

    函數語法array_pop

    mixed array_pop ( array $&array )

    array_pop函數彈出并返回數組的最后一個單元,并將數組長度減一。如果array為空則返回NULL。

    array_shift

    mixed array_shift ( array &$array )

    將數組開頭的單元移出數組并作為結果返回,將array長度減一并將所有數字鍵值改為從0開始計數,文字鍵值不變。

    代碼示例

    下面代碼展示了array_pop和array_shift的使用方法

    $arr = array(‘apple’, ‘banana’, ‘cat’);$val = array_pop($arr); // val == cat$arr = array(‘apple’, ‘banana’, ‘cat’);$val = array_shift($arr); // val == apple
    執行步驟

    兩個函數都是調用了_phpi_pop函數,區別不同的是調用_phpi_pop函數時傳遞的第二個參數off_the_end的不同,如果off_the_end是1,則是array_pop,否則是array_shift。下面是_phpi_pop這個函數執行的詳細步驟:

    1、如果數組長度為0,則返回NULL。

    2、根據off_the_end參數移動內部指針指向需要刪除的數組元素。

    3、設置返回值為第二步指針指向的元素。

    4、從數組中移出第一個或最后一個值并將長度減一。

    5、如果是array_shift操作,則需要重置數組下標,將數字下標改為從0開始計數,文字鍵值不變;否則只需要修改下一個數字索引的位置。

    6、重置array指針。

    函數執行的過程可以用下面的流程圖描述:

    下面兩個圖展示了根據上面的示例代碼執行時數組元素和內部指針的變化的效果圖:

    array_pop

    array_shift

    array_pop和array_shift調用此函數執行的步驟都大同小異,不同之處在于:

    1、在移動指針時,前者移動到數組尾部,后者移動指針到數組第一個單元。

    2、刪除操作完成后,前者只需修改下一個數字索引的位置,而后者需要重置數組下標。

    小結

    如果兩個函數實現的步驟差不多,可以用一個參數區別執行的是哪一個函數以減少程序中重復的代碼。

    原創文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知。

    如果本文對你有幫助,請點下推薦吧,謝謝^_^

    最后再安利一下,我在github有對PHP源碼更詳細的注解。感興趣的可以圍觀一下,給個star。PHP5.4源碼注解。可以通過commit記錄查看已添加的注解。

    更多源碼文章,歡迎訪問個人主頁繼續查看:hoohack

    PHP編程

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

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    黄网站色欧美视频| 青青草99啪国产免费| 久久久噜噜噜久久中文字免| 欧美成年人视频网站欧美| 萌白酱国产一区二区| 欧美国产日韩一区| 51精品国产黑色丝袜高跟鞋| 日韩精品在线视频观看| 2019最新中文字幕| 日韩成人在线视频观看| 亚洲午夜精品视频| 欧美国产极速在线| 日韩av在线天堂网| 国产精品白嫩美女在线观看| 亚洲免费成人av电影| 国产精品网站视频| 亚洲第一黄色网| 国产精品老女人精品视频| 亚洲一区二区三区视频播放| 不卡毛片在线看| 91高潮精品免费porn| 色偷偷偷亚洲综合网另类| 中文日韩在线观看| 国产成人精品一区二区在线| 久热99视频在线观看| 97婷婷涩涩精品一区| 庆余年2免费日韩剧观看大牛| 97视频在线观看亚洲| 亚洲国产精品va在线| 精品久久久久久久中文字幕| 国产精品网站视频| 日韩av三级在线观看| 欧美视频中文字幕在线| 超碰91人人草人人干| 国产主播喷水一区二区| 日韩成人av在线| 国模吧一区二区| 欧美在线精品免播放器视频| 久久久久久九九九| 美女国内精品自产拍在线播放| 日韩av不卡电影| 中文字幕自拍vr一区二区三区| 久久久999精品视频| 色婷婷**av毛片一区| 亚洲r级在线观看| 国产成人久久久精品一区| 日韩国产激情在线| 亚洲欧美三级伦理| 色综合久久久888| 欧美三级免费观看| 国产精品对白刺激| 26uuu另类亚洲欧美日本老年| 国产精品久久999| 亚洲色图美腿丝袜| 久久久免费观看视频| 欧美性极品xxxx娇小| 日韩国产高清污视频在线观看| 精品免费在线观看| 国产成人福利网站| 亚洲无线码在线一区观看| 国产精品美乳一区二区免费| 精品国产依人香蕉在线精品| 亚洲人成亚洲人成在线观看| 欧美亚洲第一区| 亚洲国产毛片完整版| 78m国产成人精品视频| 色青青草原桃花久久综合| 亚洲片国产一区一级在线观看| 欧美午夜视频在线观看| 久久精品福利视频| 国内成人精品视频| 久久伊人91精品综合网站| 国产亚洲aⅴaaaaaa毛片| 精品国内产的精品视频在线观看| 日韩小视频网址| 欧美视频13p| 国产精品无码专区在线观看| 91在线色戒在线| 国产成人一区二区三区电影| 日韩大胆人体377p| 日韩精品中文字| 久久久亚洲国产天美传媒修理工| 国产女人精品视频| 欧美高清视频在线观看| 国产在线视频一区| 国产中文日韩欧美| 久久久久久久久久久人体| 亚洲无线码在线一区观看| 国产一区二区三区精品久久久| 欧美理论电影在线播放| 欧美亚洲另类制服自拍| 欧美亚洲国产精品| 国产精品人人做人人爽| 亚洲变态欧美另类捆绑| 久久精品视频在线播放| 国产999精品久久久影片官网| 色偷偷av亚洲男人的天堂| 日日摸夜夜添一区| 国产精品www色诱视频| 日韩电影免费观看中文字幕| 亚洲国产天堂久久综合网| 国产www精品| 亚洲国产97在线精品一区| 亚洲精品一区中文字幕乱码| 午夜欧美不卡精品aaaaa| 国产成人综合精品| 精品国产一区二区三区久久| 欧美专区在线播放| 亚洲精品欧美日韩专区| 综合网中文字幕| 亚洲精品suv精品一区二区| 久久久久久亚洲精品中文字幕| 成人黄色在线播放| 亚洲精品99久久久久中文字幕| 国产视频亚洲精品| 日韩在线观看免费| 亚洲精品第一国产综合精品| 久久国产加勒比精品无码| 中文字幕不卡在线视频极品| 国产精品户外野外| www.日韩视频| 91精品国产九九九久久久亚洲| 狠狠操狠狠色综合网| 日韩激情片免费| 国产精品一区二区av影院萌芽| 色老头一区二区三区在线观看| 国产91露脸中文字幕在线| 性欧美暴力猛交69hd| 亚洲日本中文字幕免费在线不卡| 欧美一区二区三区四区在线| 精品日本美女福利在线观看| 成年人精品视频| 久久视频在线视频| 亚洲男人av在线| 亚洲电影免费观看| 国产精品香蕉在线观看| 日韩精品亚洲精品| 欧美激情xxxxx| 欧美在线视频在线播放完整版免费观看| 国产精品久久久久久久久久| 毛片精品免费在线观看| 亚洲国产另类 国产精品国产免费| 九色精品美女在线| 国产激情久久久久| 一区二区成人av| 国产一区二区三区视频| 亚洲欧美在线一区| 久久精品福利视频| 亚洲精品wwww| 亚洲人成网站免费播放| 热99精品里视频精品| 26uuu亚洲国产精品| 国产精品一区二区电影| 狠狠色噜噜狠狠狠狠97| 亚洲美女动态图120秒| 亚洲第一视频网| 亚洲欧美国产精品| 日韩高清电影免费观看完整| 日韩亚洲欧美中文在线| 亚洲电影免费观看高清完整版在线观看| 亚洲欧洲自拍偷拍| 久久久av一区| 亚洲欧美激情四射在线日| 日韩欧美精品免费在线|