End: примеры (PHP)
end(array|object &$array): mixedФункция end в PHP
Функция end() перемещает внутренний указатель массива на его последний элемент и возвращает значение этого элемента. Она используется для быстрого получения конечного значения массива без необходимости знать его точный размер или ключи.
Функция принимает один обязательный параметр:
- &array — массив, чей последний элемент требуется получить. Параметр передаётся по ссылке, так как функция изменяет внутренний указатель.
Возвращаемое значение — значение последнего элемента массива или false, если массив пуст.
Простые примеры использования
$array = [10, 20, 30, 40];
$result = end($array);
echo $result;40
$user = ['name' => 'Иван', 'age' => 30, 'city' => 'Москва'];
$lastValue = end($user);
echo $lastValue;Москва
$empty = [];
var_dump(end($empty));bool(false)
$data = ['a', 'b', 'c'];
echo end($data)."\n";
echo current($data)."\n";c c
Похожие функции в PHP
Удаляет и возвращает последний элемент массива, изменяя его размер. end() только перемещает указатель.
Устанавливает указатель на первый элемент массива. Противоположность end().
Возвращает текущий элемент массива без перемещения указателя. Часто используется после end().
Может вернуть последний элемент при указании отрицательного индекса: array_slice($array, -1)[0].
array_pop() используют, когда последний элемент нужно извлечь. end() применяют для получения значения без изменения массива. Для работы с указателями удобны end() и reset().
Типичные ошибки
В PHP 8.0+ это вызывает фатальную ошибку TypeError.
$var = "string";
$result = end($var);TypeError: end(): Argument #1 must be of type array, string given
Если массив пуст или функция возвращает false, это может быть неверно интерпретировано.
$array = [false, true];
$last = end($array);
var_dump($last);bool(true)
end() изменяет внутренний указатель, что влияет на последующие вызовы current(), next().
$arr = [1, 2, 3];
echo current($arr)."\n";
echo end($arr)."\n";
echo current($arr);1 3 3
Изменения в версиях PHP
Функция теперь строго типизирована. Передача аргумента, не являющегося массивом, вызывает исключение TypeError. Радо этого выдавалось предупреждение и возвращалось false.
Улучшена обработка пустых массивов. Для пустого массива функция всегда возвращает false.
Расширенные примеры
$array = ['a', 'b', 'c', 'd'];
for ($value = end($array); $value !== false; $value = prev($array)) {
echo $value . " ";
}d c b a
$array = ['first' => 1, 'second' => 2, 'last' => 3];
end($array);
$lastKey = key($array);
echo $lastKey;last
$arr1 = [1, 2, 3];
$arr2 = [1, 2, 3];
$pop = array_pop($arr1);
$end = end($arr2);
echo "pop: $pop, массив после pop: "; print_r($arr1);
echo "end: $end, массив после end: "; print_r($arr2);pop: 3, массив после pop: Array
(
[0] => 1
[1] => 2
)
end: 3, массив после end: Array
(
[0] => 1
[1] => 2
[2] => 3
)$multi = [
['id' => 1],
['id' => 2],
['id' => 3]
];
$lastRow = end($multi);
echo $lastRow['id'];3
$stack = [];
array_push($stack, 'task1', 'task2');
$lastTask = end($stack);
echo "Последняя добавленная задача: $lastTask";Последняя добавленная задача: task2
$data = [10, 20, 30];
$last = end($data);
reset($data);
echo "Последний: $last, первый: ". current($data);Последний: 30, первый: 10
Аналоги в других языках
End в Python
Используют индексацию [-1] или метод list.pop() с изменением списка.
arr = [10, 20, 30]
print(arr[-1])30
End в Javascript
Свойство .length и индексация или метод .pop().
let arr = [10, 20, 30];
console.log(arr[arr.length - 1]);30
End в MySQL
Функция SUBSTRING_INDEX() для строк или подзапросы с ORDER BY ... DESC LIMIT 1.
SELECT SUBSTRING_INDEX('a,b,c', ',', -1);c
В Python и JavaScript доступ по индексу — более распространённый способ, чем перемещение указателя. В PHP end() часто применяют в циклах с prev() и next().