©
This document uses PHP Chinese website manual Release
(PHP 5 >= 5.1.0)
RecursiveFilterIterator::__construct — Create a RecursiveFilterIterator from a RecursiveIterator
$iterator
)Create a RecursiveFilterIterator from a RecursiveIterator.
iterator
The RecursiveIterator to be filtered.
没有返回值。
Example #1 Basic RecursiveFilterIterator() example
<?php
class TestsOnlyFilter extends RecursiveFilterIterator {
public function accept () {
// Accept the current item if we can recurse into it
// or it is a value starting with "test"
return $this -> hasChildren () || ( strpos ( $this -> current (), "test" ) !== FALSE );
}
}
$array = array( "test1" , array( "taste2" , "test3" , "test4" ), "test5" );
$iterator = new RecursiveArrayIterator ( $array );
$filter = new TestsOnlyFilter ( $iterator );
foreach(new RecursiveIteratorIterator ( $filter ) as $key => $value )
{
echo $value . "\n" ;
}
?>
以上例程的输出类似于:
test1 test3 test4 test5
Example #2 RecursiveFilterIterator() example
<?php
class StartsWithFilter extends RecursiveFilterIterator {
protected $word ;
public function __construct ( RecursiveIterator $rit , $word ) {
$this -> word = $word ;
parent :: __construct ( $rit );
}
public function accept () {
return $this -> hasChildren () OR strpos ( $this -> current (), $this -> word ) === 0 ;
}
public function getChildren () {
return new self ( $this -> getInnerIterator ()-> getChildren (), $this -> word );
}
}
$array = array( "test1" , array( "taste2" , "test3" , "test4" ), "test5" );
$iterator = new RecursiveArrayIterator ( $array );
$filter = new StartsWithFilter ( $iterator , "test" );
foreach(new RecursiveIteratorIterator ( $filter ) as $key => $value )
{
echo $value . "\n" ;
}
?>
以上例程的输出类似于:
test1 test3 test4 test5