Задача · Ошибки и исключения · урок 8 из 8
Задача: нет на складе
Склад хранится в массиве: ключ — название товара, значение — сколько штук осталось, например ['tea' => 3, 'milk' => 2]. Напишите функцию function take(array $stock, string $name, int $qty): array, которая списывает $qty штук товара $name и возвращает склад после списания.
Если товара не хватает, функция бросает OutOfStockException с сообщением вида tea: need 5, have 3 — название товара, сколько штук просили и сколько есть. Товар, которого нет в массиве, считается товаром с остатком 0. Класс OutOfStockException уже объявлен в заготовке.
take(['tea' => 3, 'milk' => 2], 'tea', 2)→['tea' => 1, 'milk' => 2]take(['tea' => 3], 'tea', 5)→ бросаетOutOfStockExceptionс сообщениемtea: need 5, have 3take(['tea' => 3], 'coffee', 1)→ бросаетOutOfStockExceptionс сообщениемcoffee: need 1, have 0
Ограничения: $qty — целое число от 1 до 1000; товар с остатком 0 остаётся в массиве; остальные товары и их порядок не меняются.
Не добавляйте лишних require и use, если в задаче это прямо не сказано.