Представь себе стопку тарелок. Ты можешь положить новую тарелку только сверху и взять тоже можешь только верхнюю. Этот принцип "последним пришел — первым ушел" (Last-In, First-Out) очень часто используется в программировании, и для его реализации в PHP есть две замечательные парные функции: `array_push()` и `array_pop()`.
`array_push()` — это как положить новую тарелку на стопку. Она добавляет один или несколько элементов в конец массива.
`array_pop()` — это как снять верхнюю тарелку. Она извлекает последний элемент из массива.
В этом уроке мы подробно разберем, как работают эти две функции. Ты научишься добавлять и удалять элементы, работать с несколькими значениями сразу и поймешь, что именно эти функции возвращают в результате своей работы.
- Модуль 1: Основы синтаксиса PHP
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Модуль 4: Условные конструкции
- Модуль 5: Циклы
- Модуль 6: Массивы
- Индексированные массивы.
- Ассоциативные массивы.
- Многомерные массивы.
- Добавление элементов в массив.
- Удаление элементов из массива.
- Функция count().
- Функция array_push() и array_pop().
- Функция array_shift() и array_unshift().
- Функция array_merge().
- Функция array_slice().
- Функция array_splice().
- Функция in_array().
- Функция array_search().
- Функция array_keys() и array_values().
- Функция array_unique().
- Функция array_reverse().
- Сортировка: sort(), rsort().
- Сортировка: asort(), arsort().
- Сортировка: ksort(), krsort().
- Функция array_map().
- Функция array_filter().
- Функция array_reduce().
- Функция array_walk().
- Функция array_column().
- Деструктуризация массивов.
- Модуль 7: Функции
- Объявление функций.
- Вызов функций.
- Параметры функций.
- Возврат значений return.
- Значения параметров по умолчанию.
- Передача по значению.
- Передача по ссылке.
- Переменное количество аргументов.
- Оператор распаковки ....
- Типизация параметров.
- Типизация возвращаемых значений.
- Nullable типы.
- Union типы (PHP 8).
- Именованные аргументы (PHP 8).
- Анонимные функции.
- Стрелочные функции.
- Замыкания и use.
- Рекурсивные функции.
- Глобальные переменные в функциях.
- Статические переменные в функциях.
- Модуль 8: Работа со строками
- Одинарные и двойные кавычки.
- Экранирование символов.
- Heredoc и Nowdoc синтаксис.
- Функция strlen().
- Функция substr().
- Функция str_replace().
- Функция strpos() и strrpos().
- Функция explode() и implode().
- Функция trim(), ltrim(), rtrim().
- Функция strtolower() и strtoupper().
- Функция ucfirst() и ucwords().
- Функция str_repeat().
- Модуль 9: Суперглобальные переменные
- Модуль 10: Работа с формами
- Модуль 11: Работа с файлами
- Модуль 12: Дата и время
- Модуль 13: Регулярные выражения
- Модуль 14: Сессии и Cookie
- Модуль 15: Include и Require
- Модуль 16: Объектно-ориентированное программирование
- Модуль 17: Пространства имен
- Модуль 18: Обработка ошибок и исключений
- Модуль 19: Работа с JSON и XML
- Модуль 20: Работа с базами данных MySQLi
- Модуль 21: PDO - PHP Data Objects
- Модуль 22: Composer и зависимости
- Модуль 23: cURL и HTTP запросы
- Модуль 24: REST API
- Модуль 25: Безопасность
- Модуль 26: Генераторы и итераторы
- Модуль 27: Reflection API
- Модуль 28: Работа с изображениями
- Модуль 29: Отправка email
- Модуль 30: Паттерны проектирования
- Модуль 31: Тестирование
- Модуль 32: Продвинутые возможности PHP 8+
Добавление элемента с array_push()
Давай начнем с основ. У нас есть массив `$items`, и мы хотим добавить новый элемент в его конец. Заполни пропуски, чтобы с помощью функции `array_push()` добавить в массив строку 'C'.
<?php
$items = ['A', 'B'];
input1S($items, input2S);
print_r($items);Удаление элемента с array_pop()
Теперь обратная операция. У нас есть массив `$tasks`, и нам нужно удалить из него последнюю задачу. Используя токены из банка, составь команду, которая удалит последний элемент с помощью `array_pop()`.
<?php
$tasks = ['Купить хлеб', 'Позвонить маме', 'Заплатить за интернет'];
input1S(input2S);
print_r($tasks);Что возвращает array_pop()?
Функция `array_pop()` не просто удаляет элемент, но и возвращает его. Это позволяет нам сразу же использовать удаленное значение. Проанализируй код и напиши в поле для ответа, что будет выведено на экран.
<?php
$fruits = ['apple', 'orange', 'banana'];
$last_fruit = array_pop($fruits);
echo "Я съел(а) " . $last_fruit;Что возвращает array_push()?
Это важный нюанс, который часто сбивает с толку. В отличие от `array_pop()`, функция `array_push()` возвращает не измененный массив и не добавленный элемент, а что-то другое. Посмотри на код и выбери, что будет выведено на экран.
<?php
$numbers = [10];
$result = array_push($numbers, 20, 30);
echo $result;Добавление нескольких элементов
Функция `array_push()` очень удобна для добавления сразу нескольких элементов. Просто перечисли их через запятую после имени массива. Дополни код, чтобы добавить в массив `$colors` два новых цвета: 'green' и 'blue'.
<?php
$colors = ['red'];
array_push($colors, input1S, input2S);
print_r($colors);Ошибка: array_pop() на пустом массиве
Что произойдет, если попытаться извлечь элемент из пустого массива? Это не вызовет фатальной ошибки, но `array_pop()` вернет определенное значение. Программист ожидал увидеть пустую строку, но `var_dump` показывает что-то другое. Исправь ожидаемый результат в комментарии, чтобы он соответствовал действительности.
<?php$my_array = [];$value = array_pop($my_array);var_dump($value); // Ожидаемый результат: string(0) ""Имитация стопки тарелок (стека)
Давай соберем полноценный пример работы стека (LIFO - Last-In, First-Out). Собери скрипт, который: 1. Создает пустой массив-стопку. 2. Кладет в него "тарелку 1". 3. Кладет "тарелку 2". 4. Снимает верхнюю тарелку и выводит её на экран. Лишние строки не используй.
array_push($stack, "тарелка 1");echo $top_plate;$top_plate = array_pop($stack);<?php$stack = [];array_push($stack, "тарелка 2");array_shift($stack);echo "тарелка 1";?>array_pop() и ассоциативный массив
Как `array_pop()` поведет себя с ассоциативным массивом? Она удалит тот элемент, который был добавлен в массив физически последним, независимо от ключей. Посмотри на код и выбери, как будет выглядеть итоговый массив.
<?php
$config = [
'host' => 'localhost',
'user' => 'root'
];
$config['db'] = 'main_db'; // Это было добавлено последним
array_pop($config);
print_r($config);