УрокПроверено 2026Локальный прогресс

Функции как проверяемые контракты

Хорошая функция получает необходимые данные явно и возвращает один предсказуемый результат.

function total(array $prices): int

Цель урока

Разделить программу на именованные операции с понятным входом и выходом.

Пример

<?php
function total(array $prices): int {
    return array_sum($prices);
}
echo total([100, 250]);

Контракт

Типы помогают обнаружить неверный вызов рядом с причиной. Они не проверяют предметные ограничения: отрицательную цену нужно запретить отдельным условием.

Ошибка

Функция, которая одновременно читает глобальный ввод, меняет базу, пишет лог и возвращает HTML, трудно тестируется. Разделите преобразование данных и побочные эффекты.

Мини-задача

Создайте функцию расчёта скидки с проверкой диапазона 0–100 и тремя тестовыми примерами.

Локальный прогресс

Закрепите материал

Отметка, заметка, чек-лист и ответы остаются в localStorage этого браузера и не отправляются в аналитику.

Связанные материалы

Источники и проверка

  • PHP Documentation Group — структурный источник, без внешней ссылки

Последняя содержательная проверка: . Автор-разработчик Михаил Каржин. Методика качества контента.

Данные этого сервиса

Настройки cookie и локальных данных

Аналитика

Текущий статус: не выбран. До согласия обе аналитические системы не загружаются.

Локальные данные

Удаление затрагивает только ключи PHP-сервиса в этом браузере и требует подтверждения.

Политики

Политика конфиденциальности · Политика использования файлов cookie