RecursiveFilterIterator::__construct

(PHP 5 >= 5.1.0)

RecursiveFilterIterator::__constructCrée un objet RecursiveFilterIterator depuis un objet RecursiveIterator

Description

public RecursiveFilterIterator::__construct ( RecursiveIterator $iterator )

Crée un objet RecursiveFilterIterator depuis un objet RecursiveIterator.

Liste de paramètres

iterator

L'objet RecursiveIterator à filtrer.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec RecursiveFilterIterator()

  1. <?php
  2. class TestsOnlyFilter extends RecursiveFilterIterator {
  3. public function accept() {
  4. // Accepte l'élément courant si nous pouvons le parcourir
  5. // ou si sa valeur commence par "test"
  6. return $this->hasChildren() || (strpos($this->current(), "test") !== FALSE);
  7. }
  8. }
  9.  
  10. $array = array("test1", array("taste2", "test3", "test4"), "test5");
  11. $iterator = new RecursiveArrayIterator($array);
  12. $filter = new TestsOnlyFilter($iterator);
  13.  
  14. foreach(new RecursiveIteratorIterator($filter) as $key => $value)
  15. {
  16. echo $value . "\n";
  17. }
  18. ?>
  1. <?php
  2. class StartsWithFilter extends RecursiveFilterIterator {
  3.  
  4. protected $word;
  5.  
  6. public function __construct(RecursiveIterator $rit, $word) {
  7. $this->word = $word;
  8. parent::__construct($rit);
  9. }
  10.  
  11. public function accept() {
  12. return $this->hasChildren() OR strpos($this->current(), $this->word) === 0;
  13. }
  14. public function getChildren() {
  15. return new self($this->getInnerIterator()->getChildren(), $this->word);
  16. }
  17. }
  18.  
  19. $array = array("test1", array("taste2", "test3", "test4"), "test5");
  20. $iterator = new RecursiveArrayIterator($array);
  21. $filter = new StartsWithFilter($iterator, "test");
  22.  
  23. foreach(new RecursiveIteratorIterator($filter) as $key => $value)
  24. {
  25. echo $value . "\n";
  26. }
  27. ?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

test1
test3
test4
test5

Voir aussi

LoadingChargement en cours