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()

<?php
class TestsOnlyFilter extends RecursiveFilterIterator {
	public function accept() {
		// Accepte l'élément courant si nous pouvons le parcourir
		// ou si sa valeur commence par "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";
}
?>
<?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";
}
?>

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

test1
test3
test4
test5

Voir aussi

LoadingChargement en cours