相信很多從c++/java/c#等過來的同學,可能會犯這樣的錯誤:
<?php
for($i=0;$i<9;$i++)
{
#some code
#many many code!...
for($i=0;$i<8;$i++)
{
#some my ugly code
}
}
?>
外面一個大的for循環,寫了很多代碼以後,又要一個循環,大家想都不想又扔個i,我們在其他語言都是這麼幹的,但是在php這樣幹以後,你會發現,代碼變成死循環了!究其原因是什麼呢?
原來for語句並不是函數,只是一種語句形式,在php裏面,兩個i都被當作了全局變量,每次運行到完裏面的循環,i都被重新賦值爲7,當然永遠都跳不出循環了。
我的解決辦法是儘量將每次for循環的自增變量名字區分開,這樣可以極大的避免這種問題。並且儘量使用foreach.