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

PHP進行大量的數組循環操作,主要有兩種方式,一種是foreach,另一種是while,到底哪種好哪種壞一直有爭論,爲了以後能節省點CPU時間,下面總結一下:

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

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] . '...';   
}

PHP採用的複製機制是“引用複製,寫時拷貝” 

另外,既然foreach不適合處理數組寫操作,那麼我們可以得出一個結論,多數情況下,類似foreach ($array as $key => $value)形式的代碼都應該被替換成while (list($key) = each($array))。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章