php/*可在內部迭代自己的外部迭代器或類的介面。Iterator extends Traversable {abstract public mixed current ( void )abstract public scalar key ( void )abstract public void next ( void )abstract public void rewind ( void )abstract public boolean valid ( void )}*/class myIterator implements Iterator{ private $position = 0 ; private $array = array( "firstelement" , "secondelement" , "lastelement" , ); public function __construct () { $this -> position = 0 ; } function rewind () { var_dump ( __METHOD__ ); $this -> position = 0 ; } function current () { var_dump ( __METHOD__ ); return $this -> array [ $this -> position ]; } function key () { var_dump ( __METHOD__ ); return $this -> position ; } function next () { var_dump ( __METHOD__ ); ++ $this -> position ; } function valid () { var_dump ( __METHOD__ ); return isset( $this -> array [ $this -> position ]); }} $it = new myIterator ;foreach( $it as $key => $value ) { print_r( $key.'/'.$value ); echo "
" ;}/*foreach迴圈第一次執行前,先調用rewind,返回到迭代器的第一個元素,開始位置也可控制第二步執行valid檢查當前位置是否有效,有效繼續往下執行,無效則迴圈停止第三步執行current返回當前元素的值第四步執行key 返回當前元素的鍵第五步:第一次迴圈結束後執行next向前移動到下一個元素開始下一輪的迴圈(緊接著跳過rewind,進行valid檢測當前位置)往下next,valid,current,key迴圈依次執行,直到valid到無效的位置*/
內容是自己總結的,有不對的地方,希望能指出!
更多內容後續補充...
http://www.bkjia.com/PHPjc/770158.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/770158.htmlTechArticle? php /* 可在內部迭代自己的外部迭代器或類的介面。Iterator extends Traversable {abstract public mixed current ( void )abstract public scalar key ( void )abstract...