迭代器是一種更高級的工具。foreach是簡單的循環(huán)語法。雖然功能上看起來相似。但迭代器是工具,這是二者性質(zhì)上的不同,所以迭代器有更豐富的功能特性,還可以自定義具體的實現(xiàn)。特別是在內(nèi)存占用上,迭代器是按需讀取數(shù)據(jù),foreach是一次性載入數(shù)據(jù)。PHP里面PDO,SimpleXML里面都有迭代器的具體實現(xiàn),更完整的全部在SPL擴展部分。
超過10多年行業(yè)經(jīng)驗,技術領先,服務至上的經(jīng)營模式,全靠網(wǎng)絡和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務范圍包括了:成都做網(wǎng)站、網(wǎng)站制作,成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡托管,小程序開發(fā),微信開發(fā),成都App制作,同時也可以讓客戶的網(wǎng)站和網(wǎng)絡營銷和我們一樣獲得訂單和生意!
在PHP中,我們可以用array來簡單模擬隊列的功能,array_push出列,array_pop入列,但是更高效的用法還是要使用SplQueue這個官方提供的隊列類來做,記錄一下簡單的用法。
我們注意到,SplQueue中還有push和pop方法,它們與enqueue和dequeue有什么區(qū)別呢?
push和enqueue沒有區(qū)別,但是pop等同于棧的pop(FILO),每次彈出最后壓入隊列的元素。
而隊列是先進先出(FIFO)的,所以每次彈出的都是剩下的節(jié)點中先入列節(jié)點
以上是PHP隊列的簡單用法,下面是一些迭代器指針相關的操作
使用foreach 與使用迭代器,并不沖突?
迭代器可以使用在:
1、使用返回迭代器的包或庫時(如PHP5中的SPL迭代器)
2、無法在一次的調(diào)用獲取容器的所有元素時
3、要處理數(shù)量巨大的無素時(數(shù)據(jù)庫中的表以GB計的數(shù)據(jù))
迭代器還可以用來構造一些數(shù)據(jù)結構。
你可以去后盾人平臺看看,里面的東西不錯