*/ class ArrayyIterator extends \ArrayIterator { /** * @var string * * @phpstan-var string|class-string<\Arrayy\Arrayy> */ private $class; /** * @param array $array * @param int $flags * @param string $class * * @phpstan-param array $array */ public function __construct(array $array = [], int $flags = 0, string $class = '') { $this->class = $class; parent::__construct($array, $flags); } /** * @return Arrayy|mixed will return a "Arrayy"-object instead of an array */ #[\ReturnTypeWillChange] public function current() { $value = parent::current(); if (\is_array($value)) { $value = \call_user_func([$this->class, 'create'], $value, static::class, false); } return $value; } /** * @param string $offset * * @return Arrayy|mixed *

Will return a "Arrayy"-object instead of an array.

* * @phpstan-param TKey $offset * @param-return Arrayy|mixed */ #[\ReturnTypeWillChange] public function offsetGet($offset) { $value = parent::offsetGet($offset); if (\is_array($value)) { $value = \call_user_func([$this->class, 'create'], $value, static::class, false); } return $value; } }