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

首頁 > 語言 > PHP > 正文

PHP中數(shù)組循環(huán)語句foreach和while的速度之辯

2024-09-04 11:50:15
字體:
供稿:網(wǎng)友

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

在循環(huán)里進(jìn)行的是數(shù)組“讀”操作,則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];
}

在循環(huán)里進(jìn)行的是數(shù)組“寫”操作,則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] . '...';
}

總結(jié):通常認(rèn)為,foreach涉及到值復(fù)制,一定會比while慢,但實(shí)際上,如果僅僅是在循環(huán)里進(jìn)行數(shù)組的讀操作,那么foreach是很快的,這是因?yàn)镻HP采用的復(fù)制機(jī)制是“引用復(fù)制,寫時拷貝”,這樣看來,foreach的高效讀操作就不難理解了。

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

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 潢川县| 临城县| 扎兰屯市| 互助| 吴旗县| 孝义市| 铜川市| 乌兰浩特市| 壶关县| 东辽县| 岑溪市| 平罗县| 鹿泉市| 宜川县| 章丘市| 浙江省| 元江| 廉江市| 牡丹江市| 新河县| 义马市| 静海县| 防城港市| 黔西| 利辛县| 西吉县| 鄯善县| 贡嘎县| 阳城县| 巢湖市| 南澳县| 泽库县| 玉屏| 三穗县| 贺兰县| 澄迈县| 瓦房店市| 莎车县| 博兴县| 新建县| 新巴尔虎右旗|