background image

下面我们来了解如何实现一个自定义的迭代器,然后再开始慢慢理解迭代器的内部工作原
理。先来看一个官方的例子
 
代码如下

:

class

 myIterator 

implements

 Iterator {

    

private

 

$position

 = 0;

    

private

 

$array

 = 

array

(

        

"first_element",

        

"second_element",

        

"last_element",

    

);  

 

    

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;