Чистая функция (Pure Function)

Опубликовано в: PHP шпаргалка, код, заметки

Чистая функция (Pure Function) – это функция, которая всегда возвращает один и тот же результат при одинаковых входных данных и не изменяет внешние переменные (отсутствуют побочные эффекты).


📌 Основные принципы чистых функций

  • Детерминированность – функция всегда возвращает одинаковый результат для одинаковых аргументов.
  • Отсутствие побочных эффектов – функция не изменяет глобальные переменные, файлы, базу данных и другие внешние ресурсы.
  • Легко тестировать – поскольку функция зависит только от своих аргументов, её легко проверить.

🔹 Примеры чистых и нечистых функций

Пример чистой функции

function sum($a, $b) {
    return $a + $b;
}

echo sum(5, 3); // 8
echo sum(5, 3); // 8 (всегда один и тот же результат)

📌 Эта функция чистая, так как:

  • Она не использует внешние переменные.
  • Она не изменяет состояние программы.
  • Она всегда возвращает один и тот же результат при одинаковых аргументах.

Пример нечистой функции

$total = 0;

function addToTotal($num) {
    global $total;
    $total += $num;
    return $total;
}

echo addToTotal(5); // 5
echo addToTotal(5); // 10 (результат изменился!)

📌 Эта функция НЕ чистая, потому что:

  • Она зависит от внешней переменной $total.
  • При каждом вызове с одинаковым аргументом она возвращает разный результат.

🔹 Почему использовать чистые функции?

Проще тестировать – чистые функции не зависят от внешних данных.

Проще отлаживать – всегда предсказуемый результат.

Проще писать функциональный код – можно использовать array_map(), array_filter(), array_reduce().


🔹 Применение чистых функций в PHP

Используем array_map() с чистой функцией:

$numbers = [1, 2, 3, 4, 5];

function power ($n) {
	return $n * $n;
}

$squared = array_map('power', $numbers);

print_r($squared);

Вывод:

Array ( [0] => 1 [1] => 4 [2] => 9 [3] => 16 [4] => 25 )

 Функция power чистая, так как не меняет внешние переменные.


 Итог

Чистая функция – всегда предсказуема и не влияет на внешний мир.

Нечистая функция – может изменять глобальные переменные, файлы, БД.

Чистые функции делают код более читаемым и надежным.

2 минут чтения Sodium Carbonate

Комментарии (0)

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям

Автор контента

webitproff

Оффлайн

Sodium Carbonate

Последняя авторизация: 19.07.2026 01:57

  • Страница размещена: 21.07.2025 08:20
  • Последнее обновление: 21.07.2025 08:20