麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > PHP > 正文

PHP中數組循環語句foreach和while的速度之辯

2024-09-04 11:50:15
字體:
來源:轉載
供稿:網友

PHP基本上就是一種數組語言。時常要進行大量的數組循環操作,主要有兩種方式,一種是foreach,另一種是while,到底哪種好哪種壞一直有爭論,雖然我很早就意識到了這個問題,但是一直沒有細究,懵懂的感覺一直持續到現在,為了以后能節省點CPU時間,下面總結一下:

在循環里進行的是數組“讀”操作,則foreach比while快:

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

在循環里進行的是數組“寫”操作,則while比foreach快:

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

總結:通常認為,foreach涉及到值復制,一定會比while慢,但實際上,如果僅僅是在循環里進行數組的讀操作,那么foreach是很快的,這是因為PHP采用的復制機制是“引用復制,寫時拷貝”,這樣看來,foreach的高效讀操作就不難理解了。

另外,既然foreach不適合處理數組寫操作,那么我們可以得出一個結論,多數情況下,類似foreach ($array as $key => $value)形式的代碼都應該被替換成while (list($key) = each($array))。

這些技巧產生的速度差異在小項目里可能并不明顯,但是在類似框架這樣的大項目中,一次請求動輒便會涉及到幾百幾千幾萬次數組循環操作,差異就會明顯放大。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 毛片视频观看 | 日韩2区 | 成人免费一区二区三区在线观看 | 深夜免费福利视频 | 国产五区 | 午夜精品在线视频 | 日韩精品羞羞答答 | 免费a级毛片大学生免费观看 | 亚州精品天堂中文字幕 | 亚洲一区在线观看视频 | 精品一区二区三区免费毛片爱 | 成年免费视频黄网站在线观看 | 国产一级91| 久久久久久久久久久久网站 | 免费观看一区二区三区视频 | 久久精品日韩一区 | 202z中文字幕第一页 | 成人激情综合网 | 亚洲精品一区国产精品丝瓜 | 精品一区二区在线播放 | 姑娘第5集高清在线观看 | 国产精品成人一区 | 一级看片免费视频 | 免费黄色小网站 | 激情夜色| 精品国产一区二区三区免费 | 亚洲第一色婷婷 | 一区二区三区在线观看视频 | 国产成人精品一区在线播放 | 久久久电影电视剧免费看 | 女18一级大黄毛片免费女人 | 久久精品一区二区三区不卡牛牛 | 中文字幕www | 成人毛片视频在线播放 | 国产一区二区三区四区波多野结衣 | 91九色视频观看 | 5a级毛片 | 欧美人与牲禽动交精品一区 | 久久一级 | 国产1区视频 | 精品一区二区三区毛片 |