Prev: примеры (PHP)
prev(array|object &$array): mixedОписание функции prev в PHP
Функция prev перемещает внутренний указатель массива на один элемент назад и возвращает его значение. Она работает с внутренним указателем массива, который используется такими функциями, как current, next, reset и end.
Функция применяется для итерации по массиву без использования циклов foreach или for. Она полезна при ручном управлении указателем, например, при навигации между элементами массива в сложных алгоритмах или при работе с историей перемещений.
Функция принимает один обязательный параметр:
- array — массив, внутренний указатель которого нужно сдвинуть. Передается по ссылке.
Возвращает значение предыдущего элемента или false, если массив пуст или указатель вышел за пределы.
Примеры использования prev
$array = ['яблоко', 'банан', 'вишня'];
end($array); // Указатель на последнем элементе
$prev = prev($array);
echo $prev;банан
$array = [10, 20, 30, 40];
end($array);
while ($value = prev($array)) {
echo $value . " ";
}30 20 10
$array = ['первый'];
reset($array);
$result = prev($array);
var_dump($result);bool(false)
Похожие функции в PHP
Для работы с внутренним указателем массива существует несколько функций.
Перемещает указатель вперед на один элемент. Используется для итерации в прямом направлении.
Возвращает текущий элемент массива, не сдвигая указатель.
Устанавливает указатель на первый элемент массива. Часто используется для начала итерации.
Перемещает указатель на последний элемент массива.
Возвращает ключ текущего элемента массива.
Функция prev предпочтительна, когда требуется перемещаться по массиву в обратном направлении от текущей позиции. Для обычной итерации чаще применяют foreach.
Типичные ошибки
$result = prev($undefinedArray);
// Предупреждение и возврат false$value = prev([0, false, null]);
// Если элемент равен false, цикл while остановится раньше времени
while ($val = prev($array)) {
// Логика
}$array = [1];
reset($array);
$prev = prev($array);
if ($prev === false) {
echo 'Достигнут конец массива';
}Достигнут конец массива
Изменения в последних версиях PHP
Начиная с PHP 8.0, если параметр array не является ссылкой, функция выбрасывает ошибку уровня E_WARNING. Ранее она молча возвращала null.
// PHP 7
$result = prev('not_an_array'); // Возвращал null
// PHP 8
$result = prev('not_an_array'); // Вызовет WarningРасширенные примеры
$history = ['страница1', 'страница2', 'страница3'];
end($history);
$current = current($history);
$previous = prev($history);
echo 'Текущая: ' . $current . '\n';
echo 'Предыдущая: ' . ($previous !== false ? $previous : 'нет');Текущая: страница3 Предыдущая: страница2
$assoc = ['a' => 1, 'b' => 2, 'c' => 3];
end($assoc);
$prevValue = prev($assoc);
$prevKey = key($assoc);
echo "Ключ: $prevKey, Значение: $prevValue";Ключ: b, Значение: 2
$data = [5, 15, 25];
end($data);
while (($val = prev($data)) !== false) {
echo $val * 2 . " ";
}30 10
$items = ['старт', 'середина', 'финиш'];
reset($items);
next($items);
$current = current($items); // 'середина'
$back = prev($items); // Возвращаемся к 'старт'
echo $back;старт
Аналоги функции в других языках
Prev в Python
В Python нет прямой аналогии, так как итерация обычно происходит с помощью циклов. Для списков можно использовать отрицательные индексы.
my_list = ['a', 'b', 'c']
index = len(my_list) - 2 # Аналог end() + prev()
print(my_list[index])b
Prev в Javascript
В JavaScript у массивов нет внутреннего указателя. Используют индексную арифметику или итераторы.
const arr = ['x', 'y', 'z'];
let idx = arr.length - 1;
idx--; // Уменьшаем индекс
console.log(arr[idx]);y
Prev в MySQL
В SQL для навигации по результатам запроса используются курсоры, но их применение сильно отличается от PHP-массивов и встречается реже.