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

Чистая функция (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 minutes read Sodium Carbonate

Comments (0)

No comments yet
Only registered users can post new comments

Content author

webitproff

Offline

Sodium Carbonate

Last logged: 2026-09-01 22:41

About me briefly
Support and development of web projects on the CMF Cotonti: private messengers via the website, open and closed small social networks, trading platforms and marketplaces, freelance and services exchange portal, catalogs of goods from wholesale suppliers, dropshipping platforms, online stores, and much more.
View developments and download
Public portfolio of my works and developments
Telegram for messages
@webitproff
Telegram channel
@s/aBuyFILE
  • Page published: 2025-07-21 08:20
  • Last update: 2025-07-21 08:20