預定義介面-迭代器Iterator_PHP教程

來源:互聯網
上載者:User
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...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.