©
                    本文档使用
                    php中文网手册 发布
                
(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