Стрілкові функції (Arrow Functions)

← Стрілкові функції (Arrow Functions)

Ashterix

docs: English JsonRpcBundle docs, REST and MCP Bundle sections, package cards

uk/articles/from-tg/series/php-can-do/arrow-functions.md новий файл +70 −0

Стрілкові функції (Arrow Functions)

Як анонімка, тільки стрункіше

  • Додано у версії: PHP 7.4
  • Що дає: компактний синтаксис для коротких функцій, які автоматично бачать змінні з оточення та завжди повертають результат.

Особливості, які треба знати

  • завжди повертають значення;
  • можуть містити лише один вираз — без {} і багатооператорних блоків;
  • автоматично успадковують змінні з оточення, без use($x);
  • читаються як вираз, а не як інструкція.

Чому це зручно

  • менше шаблонного коду;
  • виразність у callback-ах (map, filter, reduce);
  • краще читається, особливо в колекціях і стрімах;
  • підходить для будь-якого місця, де потрібен мінімалістичний обробник.

Реальні приклади застосування

Перетворення масиву

$prices = [100, 200, 300];
$tax = 0.2;

// ❌ Звичайна анонімна функція
$withTax = array_map(function (int $p) use ($tax) {
    return $p * (1 + $tax);
}, $prices);

// ✅ Стрілкова функція
$withTax = array_map(fn(int $p) => $p * (1 + $tax), $prices);

Фільтрація елементів

$activeUsers = array_filter($users, fn(User $u) => $u->active);

Підрахунок значення

$total = array_reduce($orders, fn(int $sum, Order $o) => $sum + $o->amount, 0);

Простий калькулятор з доступом до зовнішньої змінної

$multiplier = 3;
$calc = fn(int $v) => $v * $multiplier;

echo $calc(10); // 30

Висновок

Стрілкові функції — це лаконічна форма анонімок, створена для чистих, коротких виразів у прямолінійній логіці.

Якщо тобі потрібен в коді function ($x) use ($y) { return …; } — просто заміни на fn() і відчуй різницю.


Вперше опубліковано в Telegram-каналі «Створений щоб помирати» 17.10.2025.