📅  最后修改于: 2023-12-03 15:18:21.657000             🧑  作者: Mango
CachingIterator::__construct()
函数用于创建一个CachingIterator迭代器对象。CachingIterator是一个装饰器迭代器,它能够缓存其他Iterator对象返回的数据,从而避免重复的迭代操作。
CachingIterator::__construct ( Iterator $it [, int $flags = self::CALL_TOSTRING ] )
无返回值。
// 创建一个迭代器对象
$iterator = new ArrayIterator([1,2,3,4]);
// 创建一个CachingIterator对象,装饰上面的迭代器
$cached = new CachingIterator($iterator);
// 进行两次迭代操作,该操作会将所有数据缓存起来
foreach($cached as $value) {
echo $value . "\n";
}
foreach($cached as $key => $value) {
echo $key . "->" . $value . "\n";
}
// 查看缓存数据
var_dump($cached->getCache());
输出结果为:
1
2
3
4
0->1
1->2
2->3
3->4
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
}
因为CachingIterator迭代器缓存了上面的ArrayIterator迭代器的所有数据,所以第二次迭代时可以得到每个元素的键和值,同时我们也可以通过getCache()方法查看迭代器缓存的数据。