1<?php 2 3/** 4 * This file is part of the Nette Framework (https://nette.org) 5 * Copyright (c) 2004 David Grudl (https://davidgrudl.com) 6 */ 7 8declare(strict_types=1); 9 10namespace Nette\Iterators; 11 12 13 14/** 15 * Applies the callback to the elements of the inner iterator. 16 */ 17class Mapper extends \IteratorIterator 18{ 19 /** @var callable */ 20 private $callback; 21 22 23 public function __construct(\Traversable $iterator, callable $callback) 24 { 25 parent::__construct($iterator); 26 $this->callback = $callback; 27 } 28 29 30 public function current(): mixed 31 { 32 return ($this->callback)(parent::current(), parent::key()); 33 } 34} 35