ArrayObject 的 getiteratpr方法得到的迭代器與 ArrayIterator實(shí)例化后的迭代器有什么不一樣么???
16行 $obj = new ArrayObject($fruits)? 然后 $it = $obj->getiterator();
為什么不直接$it = new ArrayIterator;
還有個(gè)問(wèn)題,翻看php手冊(cè)發(fā)現(xiàn)ArrayObject的getiterator方法是個(gè)靜態(tài)方法,而用靜態(tài)方法調(diào)用時(shí)報(bào)錯(cuò),用"->"調(diào)用卻可以。有點(diǎn)費(fèi)解
2016-06-26
第一個(gè)問(wèn)題:當(dāng)你想多次遍歷相同數(shù)組時(shí)你需要實(shí)例化ArrayObject,然后讓這個(gè)實(shí)例創(chuàng)建一個(gè)ArrayIteratror實(shí)例 ,然后使用foreach或者 手動(dòng)調(diào)用getIterator()方法
第二個(gè)問(wèn)題:ArrayObject的getiterator也不是一個(gè)靜態(tài)方法,這個(gè)你當(dāng)ArrayObject::getiterator();這樣使用的時(shí)候就會(huì)報(bào)錯(cuò),錯(cuò)誤:getiterator非靜態(tài)方法數(shù)組對(duì)象