W3docs

PHP Array Pop: Полное руководство

Исчерпывающее руководство по функции PHP array_pop(): синтаксис, возвращаемые значения, побочные эффекты и практические примеры.

array_pop() удаляет последний элемент из array, возвращает его и уменьшает array на один элемент. Именно так PHP array используется как стек — последний добавленный элемент извлекается первым. На этой странице рассматриваются синтаксис, возвращаемые значения, побочные эффекты (перенумерация числовых ключей и внутренний указатель), а также случаи применения функции.

Что делает array_pop()

array_pop() — встроенная функция PHP, которая:

  • Удаляет элемент в конце array,
  • Возвращает значение удалённого элемента и
  • Изменяет array на месте — переданный array становится постоянно короче.

Если ключи array числовые (0, 1, 2, …), после извлечения они перенумеровываются начиная с 0. Строковые ключи остаются нетронутыми. Такое же поведение при перенумерации наблюдается у array_shift() — это главный момент, который нужно помнить.

Синтаксис

array_pop(array &$array): mixed
ЧастьЗначение
&$arrayArray, из которого извлекается элемент; передаётся по ссылке — изменяется напрямую.
возвращаемое значениеЗначение последнего элемента или null, если array пуст.

Поскольку $array передаётся по ссылке, нельзя вызвать array_pop() с литералом или результатом функции — необходимо передать переменную, содержащую array.

Удаление последнего элемента

Извлеките последний элемент и сохраните возвращённое значение:

php— editable, runs on the server

array_pop() удаляет "cherry", возвращает его и оставляет в $fruits два элемента:

cherry
Array
(
    [0] => apple
    [1] => banana
)

Извлечение из пустого array

Если array уже пуст, array_pop() возвращает null. В современных версиях PHP это происходит без предупреждений, поэтому результат можно спокойно проверять:

php— editable, runs on the server

Вывод:

Array is empty
No element to pop

Обратите внимание, что возвращённый null неоднозначен — по нему нельзя отличить «array был пуст» от «последний элемент действительно имел значение null». Если это важно, проверьте count($array) перед извлечением.

Использование array_pop() как стека

Совместное использование array_pop() и array_push() (или $array[] = ...) даёт стек по принципу «последним пришёл — первым вышел» (LIFO). Цикл с array_pop() опустошает array с конца:

<?php

$stack = [1, 2, 3, 4, 5];

while (count($stack) > 0) {
    echo array_pop($stack) . " ";
}

?>

Вывод — элементы возвращаются в обратном порядке:

5 4 3 2 1 

Числовые ключи перенумеровываются

Если после извлечения элемента из array с числовыми ключами добавить новый элемент через $array[], новый индекс будет продолжать перенумерованную последовательность, а не исходный максимальный ключ:

<?php

$data = ["x" => 10, "y" => 20, "z" => 30];
$value = array_pop($data);   // removes "z" => 30

echo $value . "\n";          // 30
print_r($data);

?>
30
Array
(
    [x] => 10
    [y] => 20
)

Строковые ключи остаются нетронутыми. При числовых ключах array_pop() приводит их к последовательности 0, 1, 2, … — это важно учитывать, если другой код опирается на конкретные значения индексов.

Связанные функции

ФункцияЧто удаляет / добавляет
array_pop()Удаляет последний элемент.
array_push()Добавляет один или несколько элементов в конец.
array_shift()Удаляет первый элемент.
array_unshift()Добавляет один или несколько элементов в начало.
array_slice()Извлекает часть array без изменения оригинала (при обычном вызове).

Для более широкого знакомства с тем, как работают array, см. PHP Arrays.

Итоги

  • array_pop() удаляет и возвращает последний элемент array, изменяя его по ссылке.
  • Пустой array даёт null — используйте count(), если нужно отличить пустой array от реального значения null.
  • Это естественный инструмент для стековой обработки (LIFO) и для последовательного усечения конца array.
  • Числовые ключи перенумеровываются с 0; строковые ключи сохраняются.

Практика

Практика
Какова функция array_pop() в PHP?
Какова функция array_pop() в PHP?
Was this page helpful?