Next: примеры (PHP)
next(array|object &$array): mixedОписание функции next
Функция next() в PHP используется для перемещения внутреннего указателя массива на одну позицию вперед. После перемещения, она возвращает значение элемента, находящегося в новой позиции указателя.
Использование функции актуально при ручном переборе элементов массива без применения циклов. Она часто задействуется в комбинации с current(), prev() и reset().
Функция принимает один обязательный параметр:
- array &$array – массив, внутренний указатель которого необходимо переместить. Параметр передается по ссылке.
Возвращаемые значения: значение элемента массива в новой позиции указателя, false при достижении конца массива или если массив пуст.
<?php
$fruits = ['яблоко', 'банан', 'апельсин'];
echo current($fruits); // яблоко
echo next($fruits); // банан
?>яблоко банан
<?php
$array = ['первый', 'последний'];
next($array); // 'последний'
var_dump(next($array));
?>bool(false)
<?php
$user = ['имя' => 'Анна', 'возраст' => 30, 'город' => 'Москва'];
reset($user);
echo current($user); // Анна
echo next($user); // 30
echo next($user); // Москва
?>Анна 30 Москва
- prev() – перемещает внутренний указатель массива на одну позицию назад. Применяется для обратного перебора.
- current() – возвращает текущий элемент массива, не двигая указатель.
- reset() – устанавливает указатель на первый элемент. Используется для начала перебора.
- end() – перемещает указатель на последний элемент массива.
- each() – возвращает пару ключ/значение текущего элемента и двигает указатель вперед. Устарела с PHP 7.2.
Для большинства задач перебора удобнее использовать циклы foreach или итераторы.
<?php
$var = 'строка';
var_dump(next($var));
?>Warning: next() expects parameter 1 to be array, string given
<?php
$emptyArray = [];
var_dump(next($emptyArray));
?>bool(false)
<?php
$array = ['один'];
next($array); // false, массив закончился
if (next($array) === false) {
echo 'Достигнут конец массива';
}
?>Достигнут конец массива
В PHP 8.0 поведение функции next() при передаче не-массива было изменено. Раньше она возвращала null и вызывала ошибку уровня E_WARNING. Теперь функция выбрасывает исключение TypeError.
<?php
// PHP 7.x
$var = null;
var_dump(@next($var)); // NULL, Warning
// PHP 8.x
// Выбрасывается TypeError
?><?php
$data = [10, 20, 30];
reset($data);
echo current($data); // 10
echo next($data); // 20
echo prev($data); // 10
echo end($data); // 30
echo prev($data); // 20
?>10 20 10 30 20
<?php
$colors = ['красный', 'зеленый', 'синий'];
reset($colors);
while ($value = current($colors)) {
echo $value . ' ';
next($colors);
}
?>красный зеленый синий
<?php
$special = [true, false, 'текст'];
reset($special);
while (key($special) !== null) { // проверка по ключу
var_dump(current($special));
next($special);
}
?>bool(true) bool(false) string(10) "текст"
<?php
$nums = [1, 2, 3];
$doubled = array_map(fn($n) => $n * 2, $nums);
reset($doubled);
echo current($doubled); // 2
echo next($doubled); // 4
?>2 4
Next в Python
Функция next() работает с итераторами. Требуется передать итератор вручную.
fruits = ['яблоко', 'банан', 'апельсин']
iterator = iter(fruits)
print(next(iterator)) # яблоко
print(next(iterator)) # бананяблоко банан
Next в Javascript
В JavaScript массивы являются итерируемыми объектами. Можно использовать метод .next() итератора.
const fruits = ['яблоко', 'банан', 'апельсин'];
const iterator = fruits[Symbol.iterator]();
console.log(iterator.next().value); // яблоко
console.log(iterator.next().value); // бананяблоко банан
Next в MySQL
Прямого аналога нет. Для последовательного доступа к результатам запроса используются курсоры.