TGViewer
Пятиминутка PHP Пятиминутка PHP @tg_5minphp · 2.79K subscribers
Post #1156 2K

Forwarded from Сергей Предводителев

🌿 Про минимальное количество аргументов для variadic-параметров в PHP

При использовании variadic-параметров в некоторых случаях нужно ограничить минимальное количество элементов. Это можно сделать с помощью проверки внутри метода:

public function eat(string ...$foods): void
{
if (empty($foods)) {
throw new LogicException('Need to eat something.');
}
// ...
}

Но можно избавится от проверки и ввести это ограничение другим способом:

public function eat(string $food, string ...$moreFood): void
{
$foods = [$food, ...$moreFood];
// ...
}

Причём это будет работать как в классическом варианте:

$pet->eat('apple', 'meat', 'bread');

Так и с помощью распаковки массива:

$foods = ['apple', 'meat', 'bread'];
$pet->eat(...$foods);

Периодически использую этот подход на практике, позволяет задать дополнительные условия на уровне сигнатуры метода.
  • 👍 26
  • ❤ 5
  • 🔥 3
  • 🤡 1
More from @tg_5minphp
  1. Sep 28, 2026Запустили Пыхник и неделю PHP! Залетайте на первый открытый доклад от Дмитрия Dantes про к…
  2. Sep 10, 2026Пыхник’26 — целая неделя PHP! С 28 сентября по 2 октября пройдёт Пыхник’26 — онлайн-конфер…
  3. Jul 27, 2026Работа с Claude Code "в лоб": создай dynamic worflow, чтобы найти все баги, запиши их в BU…
  4. Jul 8, 2026Первый официальный State of PHP опрос открыт: https://jb.gg/php-survey-2026 В сообществе у…
  5. Jul 3, 2026Запустили краудфандинг!!! 11 сентября в Art Village под Москвой собираем небольшую PHP-кон…
  6. Jul 3, 2026Продано!
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →