ArrayObject 的 getiteratpr方法得到的迭代器與 ArrayIterator實例化后的迭代器有什么不一樣么???
16行 $obj = new ArrayObject($fruits)? 然后 $it = $obj->getiterator();
為什么不直接$it = new ArrayIterator;
還有個問題,翻看php手冊發現ArrayObject的getiterator方法是個靜態方法,而用靜態方法調用時報錯,用"->"調用卻可以。有點費解
16行 $obj = new ArrayObject($fruits)? 然后 $it = $obj->getiterator();
為什么不直接$it = new ArrayIterator;
還有個問題,翻看php手冊發現ArrayObject的getiterator方法是個靜態方法,而用靜態方法調用時報錯,用"->"調用卻可以。有點費解
2015-08-13
舉報
2016-06-26
第一個問題:當你想多次遍歷相同數組時你需要實例化ArrayObject,然后讓這個實例創建一個ArrayIteratror實例 ,然后使用foreach或者 手動調用getIterator()方法
第二個問題:ArrayObject的getiterator也不是一個靜態方法,這個你當ArrayObject::getiterator();這樣使用的時候就會報錯,錯誤:getiterator非靜態方法數組對象