Оглавление
Как это работаетПримеры использованияИспользование оператора распаковки несколько разОператор распаковки с возвращаемым значением функцииОператор распаковки с генераторомОператор распаковки с объектом TraversableОператор распаковки и именованные аргументыИтог
Оператор распаковки в PHP
Оператор распаковки был добавлен в выражения массивов начиная с PHP 7.4. В PHP для обозначения этого оператора используются три точки (
...).Если перед именем массива поставить оператор распаковки, элементы этого массива будут вставлены на место оператора:
Пример:
Результат:
Как это работает
- Определяется массив
$numbersс двумя числами. - Определяется массив
$scoresс числами 1, 2, 3 и к нему добавляются элементы из$numbersс помощью оператора распаковки. - В результате массив
$scoresсодержит числа 1, 2, 3, 4 и 5.
Оператор распаковки работает быстрее, чем функция
array_merge(), так как является встроенной конструкцией языка, а не вызовом функции. Кроме того, PHP оптимизирует работу с константными массивами на этапе компиляции.В отличие от передачи аргументов, оператор распаковки можно использовать в любом месте массива.
Примеры использования
В начале массива:
Результат:
В середине массива:
Результат:
Использование оператора распаковки несколько раз
PHP позволяет использовать оператор распаковки несколько раз в одном выражении.
Результат:
Как это работает
- Определяются два массива:
$even(чётные) и$odd(нечётные). - С помощью оператора распаковки их элементы объединяются в новый массив
$all.
Оператор распаковки с возвращаемым значением функции
Оператор распаковки можно использовать с массивом, который возвращает функция.
Результат:
Результат будет отличаться при каждом запуске из-за функции
rand().Оператор распаковки с генератором
Можно использовать оператор распаковки с генераторами.
Результат:
Оператор распаковки с объектом Traversable
Оператор распаковки работает не только с массивами, но и с любыми объектами, реализующими интерфейс
Traversable.Результат:
Оператор распаковки и именованные аргументы
С PHP 8 можно вызывать функции с именованными аргументами и использовать оператор распаковки.
В этом случае ключи массива совпадают с именами параметров функции.
Итог
- В PHP оператор распаковки обозначается тремя точками (
...). - Он позволяет "разворачивать" элементы массива или объекта, реализующего
Traversable. - Используется для объединения массивов, передачи аргументов в функции и работы с генераторами.
- С PHP 8 поддерживает именованные аргументы при вызове функций.

