首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

RecursiveFilterIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

RecursiveFilterIterator::__construct — Create a RecursiveFilterIterator from a RecursiveIterator

Description

代码语言:javascript
复制
public RecursiveFilterIterator::__construct ( RecursiveIterator $iterator )

Create a RecursiveFilterIterator from a RecursiveIterator.

Parameters

iterator

The RecursiveIterator to be filtered.

Return Values

No value is returned.

Examples

Example #1 Basic RecursiveFilterIterator() example

代码语言:javascript
复制
<?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";
}
?>

The above example will output something similar to:

代码语言:javascript
复制
test1
test3
test4
test5

Example #2 RecursiveFilterIterator() example

代码语言:javascript
复制
<?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";
}
?>

The above example will output something similar to:

代码语言:javascript
复制
test1
test3
test4
test5

See Also

  • RecursiveFilterIterator::getChildren() - Return the inner iterator's children contained in a RecursiveFilterIterator
  • RecursiveFilterIterator::hasChildren() - Check whether the inner iterator's current element has children
  • FilterIterator::accept() - Check whether the current element of the iterator is acceptable

← RecursiveFilterIterator

RecursiveFilterIterator::getChildren →

代码语言:txt
复制
 ? 1997–2017 The PHP Documentation Group

Licensed under the Creative Commons Attribution License v3.0 or later.

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com