假設我們有以下幾個例子。是否有任何性能差異,下面的使用差異,還是僅僅是個人偏好?以下for和while語句之間是否有實際區別?
for($i=0; $i<10; $i++){
echo $i;
}
和
$i = 0;
while($i < 10){
echo $i;
$i++;
}
假設我們有以下幾個例子。是否有任何性能差異,下面的使用差異,還是僅僅是個人偏好?以下for和while語句之間是否有實際區別?
for($i=0; $i<10; $i++){
echo $i;
}
和
$i = 0;
while($i < 10){
echo $i;
$i++;
}
號不限於環可被寫爲一個while循環(和反之亦然)。同樣,each recursive function can be written as a loop(有時有很多工作,但可以完成),反之亦然。
關於業績:雖然我還沒有這個基準,兩個環路聲明正好在同一時間相同的變量,在同一時間執行相同的指令,並在[執行同一時間相同的比較。循環完成後,相同的變量(在您的示例中爲$i
)以相同的值存在。我不明白哪裏會有性能差異。 (請注意,在某些其他語言(如C++)中,for循環的初始化部分中聲明的變量在循環後停止。)
您使用哪種循環主要是個人偏好問題。當迭代次數已知時,我喜歡使用for循環(例如,在您的示例中:10次迭代)。當循環不得不繼續下去,直到某些條件(你無法預測何時編寫程序)滿足爲止,比如在迭代你不知道大小的數據庫結果集時,我通常使用while循環。
唯一的區別是變量範圍(取決於編程語言)。
例如,您可能需要$ I只具有for循環,這樣就可以實現內的範圍。
這不能做while循環一樣,但比它們是相同的其他。
有人可能會產生非常邊際的性能優勢比其他,但是這將是具體的編譯器。這樣做會很小,以至於代碼首選項每次都會優先考慮。
在PHP中,'for'的第一部分中聲明的變量不限於循環本身的範圍。 –
注意:'for'和'while'是語句,而不是函數。 – Boann
@Boann固定,謝謝。 –