·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> 预定义接口-迭代器Iterator

预定义接口-迭代器Iterator

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
预定义接口-迭代器Iterator
<?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  "<br />" ;}/*foreach循环第一次执行前,先调用rewind,返回到迭代器的第一个元素,开始位置也可控制第二步执行valid检查当前位置是否有效,有效继续往下执行,无效则循环停止第三步执行current返回当前元素的值第四步执行key 返回当前元素的键第五步:第一次循环结束后执行next向前移动到下一个元素开始下一轮的循环(紧接着跳过rewind,进行valid检测当前位置)往下next,valid,current,key循环依次执行,直到valid到无效的位置*/

最下面的注释是自己总结的,有不对的地方,希望能指出!

更多内容后续补充...