學習程式語言時, 總是學學 for, 然後再試著用 while 寫出 for 的效果 等等的一些練習.
來看看沒有 foreach 前, 要想要有 foreach 的功能要怎麼寫(用 while、list、each 來達成).
在這篇文章看到: PHP的foreach前身寫法 (下述程式碼轉載自此文)
//舊的寫法
reset($attributes);
while (list($key, $value) = each($attributes)) {
//do something
}//PHP4版本新增
foreach ($attributes as $key => $value){
//do something
}
紀錄起來, 若新學的程式語言沒有 foreach, 或許可以試著幫他補上~ 🙂
2010-01-06 更新: 於 while() 前面增加 reset($array), 感謝 Hackfan 指點. (foreach 預設會將陣列指標做 reset 的動作, 就是跑完一次 foreach, 指標已經指到最後面, while 再跑將印不出任何資料).
這種寫法,一看就是 Perl 的風格呀... XD
呵呵, 是阿, 但是很方便哩~
對了, 直接點您的名稱, 您的網站的 ref table 似乎有問題.
是呀, 這個 ref_karma 的老問題已經很久了...
有空時,應該整個改用 Akismet 好了...
試試重建 wordpress.ref_karma 這個 table 看看?
老實說 有foreach的話要抓取array的數值都超方便的
嗯嗯, 就是某些程式語言沒有提供 foreach.
於是想想該如何幫他加上這個功能~ 😛
我想到就是說試試看mysql_fetch出來的東西能不能用foreach直接下去處理
但是好像試失敗了 必須用while塞給一個變數之後才可以使用他去處理
囧">
Mmm... mysql_fetch 出來的已經是 array, 不需要經過 while 沒關係的~
while的写法,应该先reset吧
foreach默认对数组进行reset操作的
嗯嗯, 感恩, 這個我沒注意到.
實測範例狀況:
$a = array(...);
foreach($a) 跑完後, 再跑上述的 while($a), 會印不出任何資料.
foreach($a) 跑完後, 再跑 foreach($a), 會資料還是會印的出來.
foreach($a) 跑完後, 再跑 reset($a), 再跑 while($a), 會資料就可以正常印的出來.
还是foreach比较好用。。。。