Веб Мастерская | Веб разработка и программирование | ИТ | IT
IT и технологии · 3 ноября 2026 г.
PHP:
PHP: Spread оператор (...): неочевидные трюки с массивами Коллеги, если вы всё ещё склеиваете массивы только через array_merge, присмотритесь к ... . В современных PHP он экономит код и решает несколько неочевидных задач. Сборка массива на лету $roles = ['admin', 'editor']; $all = [...$roles, 'manager', ...getExtraRoles()]; Числовые ключи пересчитаются, а результат читается как обычная последовательность. Дефолты и переопределения $defaults = ['debug' => false, 'cache' => true]; $config = [...$defaults, ...$userOptions]; Что позже, то и важнее. Хотите жёстко задать значение? Ставьте его после спреда: $config = [...$defaults, ...$userOptions, 'cache' => false]; Строковые ключи С PHP 8.1 ... нормально работает с ассоциативными массивами. При совпадении ключей последний перезапишет предыдущий. Именованные аргументы через массив function sendMail(string $to, string $subject, bool $urgent = false) {} $args = ['to' => 'client@mail.ru', 'subject' => 'Счёт', 'urgent' => true]; sendMail(...$args); Удобно для фабрик, обёрток и динамических вызовов. Генераторы и итераторы $items = [...getRowsFromDb(), ...getRowsFromApi()]; Развернуть можно любой Traversable. Но генератор выполнится сразу — кэша «на потом» не будет. Не путайте с рекурсивным мержем Спред разворачивает только верхний уровень. Вложенные массивы останутся значениями. Нужно глубоко объединить? Смотрите в сторону рекурсивного array_replace. Практика простая: ... делает код короче, но порядок источников решает. Собирайте конфиги осознанно, и продакшен не удивит. Вот так. Идем кодить дальше! 🚀
Канал в каталоге Максиметера
127 подписчиков · IT и технологии