Я хотел бы над массивом бесконечно, как круговой массив.
У меня есть следующая настройка, использующая InfiniteIterator
1 , которая перебирает $players
бесконечно.Но на самом деле, я хочу знать следующего игрока и предыдущего игрока из этого цикла, как показано ниже
$players = new InfiniteIterator(new ArrayIterator(['Shobi', 'Jomit']));
foreach ($players as $player) {
echo $player; // current player name comes properly infinetly
echo next($players); // next player should come
echo current($players); // current player should come
echo prev($players); //previous player should come
}
, но next()
и prev()
всегда возвращают ноль
Из документа яя вижу, что эти методы возвращают void, но есть ли способ, как я могу расширить InfiniteIterator и добиться этого необходимого механизма?
Как заставить next()
и prev()
работать с InfiniteIterator?
Редактировать current()
возвращает текущий элемент (это означает, что он работает правильно в логике)