2013-05-08 30 views
-1

我很渴望在foreachfor之間哪個循環技術被認爲性能最好?並且我們還可以通過查找循環的最佳實踐來優化腳本。哪個循環在性能上更好 - foreach還是?

+0

措施遞增,並看到自己的密鑰,當foreach:但請記住,'foreach'是專門對於數組和可迭代的對象,而'for'則更具通用性。你可能也想看'while while'循環 – 2013-05-08 08:00:42

+0

http://stackoverflow.com/questions/3430194/performance-of-for-vs-foreach-in-php?rq=1 – 2013-05-08 08:00:42

+0

也可以使用echo而不是print。回聲不會返回一個值,所以將爲您節省寶貴的CPU週期;-) – 2013-05-08 08:04:52

回答

5

不要擔心性能 - 預優化是萬惡之源,最多可節省幾納秒。

使用過有規律的012陣列循環時for循環,並且使用的是不從0

+3

爲什麼他們應該在數字索引數組上使用'for'? – Jon 2013-05-08 08:02:38

+0

@Jon我不知道PHP是否以相同的方式保存所有數組(使用遞增鍵/靜態鍵等),但我可以想象,在輸出數組之前不必查找數組中的鍵是更快的。一個'foreach'將(實質上)*有*查找鍵和*然後*遍歷數組,而for循環只需要引用數組長度,但不必查找鍵。我*可能會對此錯誤,但是如果我是這樣的話,我會喜歡一些見解。 – h2ooooooo 2013-05-08 08:06:06

+0

所有數組都以相同的方式保存:散列表(提供快速查找任意鍵)和鏈表(提供排序和確定性迭代)的組合。 'foreach'使用鏈表進行迭代,所以不涉及查找。實際上它是查找的(因爲它們不是「真正的」數組,所以在訪問時索引被散列並查找散列表)。 – Jon 2013-05-08 08:08:18

相關問題