<?<span>php
</span><span>
</span>
<span>
class
</span> myIterator <span>
implements
</span><span> Iterator{
</span><span>
private
</span> <span>
$position
</span> = 0<span> ;
</span><span>
private
</span> <span>
$array
</span> = <span>
array
</span><span>(
</span>
"firstelement"
,
"secondelement"
,
"lastelement"
,<span>
);
</span><span>
public
</span> <span>
function
</span><span> __construct () {
</span><span>
$this
</span> -> position = 0<span> ;
}
</span><span>
function
</span> <span>
rewind
</span><span> () {
</span><span>var_dump</span> ( <span>
__METHOD__
</span><span> );
</span><span>
$this
</span> -> position = 0<span> ;
}
</span><span>
function
</span> <span>current</span><span> () {
</span><span>var_dump</span> ( <span>
__METHOD__
</span><span> );
</span><span>
return
</span> <span>
$this
</span> -> <span>
array
</span> [ <span>
$this
</span> -><span> position ];
}
</span><span>
function
</span> <span>key</span><span> () {
</span><span>var_dump</span> ( <span>
__METHOD__
</span><span> );
</span><span>
return
</span> <span>
$this
</span> -><span> position ;
}
</span><span>
function
</span> <span>next</span><span> () {
</span><span>var_dump</span> ( <span>
__METHOD__
</span><span> );
</span>++ <span>
$this
</span> -><span> position ;
}
</span><span>
function
</span><span> valid () {
</span><span>var_dump</span> ( <span>
__METHOD__
</span><span> );
</span><span>
return
</span> <span>isset</span>( <span>
$this
</span> -> <span>
array
</span> [ <span>
$this
</span> -><span> position ]);
}
}
</span><span>
$it
</span> = <span>
new
</span><span> myIterator ;
</span><span>
foreach
</span>( <span>
$it
</span> <span>
as
</span> <span>
$key
</span> => <span>
$value
</span><span> ) {
</span><span>print_r</span>( <span>
$key
</span>.
'/'
.<span>
$value
</span><span> );
</span><span>
echo
</span>
"<br />"
<span> ;
}
</span><span>
</span>