最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php foreach、while性能比較

 更新時間:2009年10月15日 22:33:38   作者:  
foreach是對數(shù)組副本進行操作(通過拷貝數(shù)組),而while則通過移動數(shù)組內(nèi)部指標(biāo)進行操作,一般邏輯下認為,while應(yīng)該比foreach快.
foreach是對數(shù)組副本進行操作(通過拷貝數(shù)組),而while則通過移動數(shù)組內(nèi)部指標(biāo)進行操作,一般邏輯下認為,while應(yīng)該比foreach快(因為foreach在開始執(zhí)行的時候首先把數(shù)組復(fù)制進去,而while直接移動內(nèi)部指標(biāo)。),但結(jié)果剛剛相反。
在循環(huán)里進行的是數(shù)組“讀”操作,則foreach比while快:
復(fù)制代碼 代碼如下:

foreach ($array as $value) {
echo $value;
}
while (list($key) = each($array)) {
echo $array[$key];
}

在循環(huán)里進行的是數(shù)組“寫”操作,則while比foreach快:
復(fù)制代碼 代碼如下:

foreach ($array as $key => $value) {
echo $array[$key] = $value . '...';
}
while (list($key) = each($array)) {
$array[$key] = $array[$key] . '...';
}

總結(jié):通常認為,foreach涉及到值復(fù)制,一定會比while慢,但實際上,如果僅僅是在循環(huán)里進行數(shù)組的讀操作,那么foreach是很
快的,這是因為PHP采用的復(fù)制機制是“引用計數(shù),寫時復(fù)制”,也就是說,即便在PHP里復(fù)制一個變量,最初的形式從根本上說其實
仍然是引用的形式,只有當(dāng)變量的內(nèi)容發(fā)生變化時,才會出現(xiàn)真正的復(fù)制,之所以這么做是出于節(jié)省內(nèi)存消耗得目的,同時也提升了
復(fù)制的效率。這樣看來,foreach的高效讀操作就不難理解了。另外,既然foreach不適合處理數(shù)組寫操作,那么我們可以得出一個結(jié)
論,多數(shù)情況下,類似foreach ($array as $key => $value)形式的做數(shù)組寫操作得代碼都應(yīng)該被替換成while (list($key) =
each($array))。這些技巧產(chǎn)生的速度差異在小項目里可能并不明顯,但是在類似框架這樣的大項目中,一次請求動輒便會涉及到幾
百幾千幾萬次數(shù)組循環(huán)操作,差異就會明顯放大。

相關(guān)文章

  • PHP開發(fā)中常用的8個小技巧

    PHP開發(fā)中常用的8個小技巧

    PHP日常開發(fā)中常用的8個小技巧。簡單實用
    2008-08-08
  • PHP 讀取和修改大文件的某行內(nèi)容的代碼

    PHP 讀取和修改大文件的某行內(nèi)容的代碼

    最近碰到一個比較有趣的問題,就是修改某個文件的某一行字符,不過文件太大,file()直接讀取是不可能的,我使用fgets來跳轉(zhuǎn)到指定行,并用fwrite修改某個字符串。
    2009-10-10
  • libmysql.dll與php.ini是否真的要拷貝到c:\windows目錄下呢

    libmysql.dll與php.ini是否真的要拷貝到c:\windows目錄下呢

    很多安裝PHP的教程,都是教大家把php里的libmysql.dll拷貝到c:\windows目錄下(有的教程會說還要把php.ini等文件拷到系統(tǒng)目錄的,其實一個文件都不用拷貝去的。)。
    2010-03-03
  • 修改Laravel5.3中的路由文件與路徑

    修改Laravel5.3中的路由文件與路徑

    本文先是回顧了Laravel5.2中路由的修改,然后給大家用實例代碼介紹了如何修改Laravel5.3中的路由,有需要的小伙伴們可以參考學(xué)習(xí)。
    2016-08-08
  • php實現(xiàn)可逆加密的方法

    php實現(xiàn)可逆加密的方法

    這篇文章主要介紹了php實現(xiàn)可逆加密的方法,借鑒了discuz的加密原理實現(xiàn)通過密鑰進行可逆加密的功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • php 廣告調(diào)用類代碼(支持Flash調(diào)用)

    php 廣告調(diào)用類代碼(支持Flash調(diào)用)

    php 廣告調(diào)用類代碼(支持Flash調(diào)用),非常方便php頁面中加載廣告。需要的朋友可以參考下。
    2011-08-08
  • PHP獲取昨天、今天及明天日期的方法

    PHP獲取昨天、今天及明天日期的方法

    這篇文章主要介紹了PHP獲取昨天、今天及明天日期的方法,涉及PHP針對時間與日期的相關(guān)操作技巧,非常簡單實用,需要的朋友可以參考下
    2016-02-02
  • PHP的SQL注入過程分析

    PHP的SQL注入過程分析

    今天從網(wǎng)上學(xué)習(xí)了有關(guān)SQL注入的基本技能,SQL注入的重點就是構(gòu)造SQL語句,只有靈活的運用SQL語句才能構(gòu)造出牛的注入字符串
    2012-01-01
  • 一文搞懂PHP中的DI依賴注入

    一文搞懂PHP中的DI依賴注入

    依賴注入DI 其實本質(zhì)上是指對類的依賴通過構(gòu)造器完成 自動注入。本文將通過一些示例帶大家深入了解一下PHP中的DI依賴注入,需要的可以參考一下
    2022-08-08
  • php好代碼風(fēng)格的階段性總結(jié)

    php好代碼風(fēng)格的階段性總結(jié)

    這篇文章主要介紹了php好代碼風(fēng)格,階段性總結(jié)了php程序設(shè)計中變量、函數(shù)、參數(shù)的相關(guān)使用注意事項與編程技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-06-06

最新評論

隆化县| 黎平县| 辉县市| 闽清县| 柏乡县| 常宁市| 锦屏县| 班戈县| 玛曲县| 宝应县| 青阳县| 治县。| 金溪县| 麻城市| 威海市| 德清县| 宜阳县| 宁安市| 且末县| 玉林市| 新宁县| 公主岭市| 赣州市| 贵溪市| 崇明县| 嘉义市| 宝丰县| 博湖县| 原阳县| 阜新| 凭祥市| 仙居县| 手游| 神木县| 弋阳县| 凤庆县| 浦县| 呼和浩特市| 绥阳县| 区。| 桂阳县|