← Стрілкові функції (Arrow Functions)
docs: English JsonRpcBundle docs, REST and MCP Bundle sections, package cards
uk/articles/from-tg/series/php-can-do/arrow-functions.md
новий файл +70
−0
1
+
# Стрілкові функції (Arrow Functions)
2
+
3
+
*Як анонімка, тільки стрункіше*
4
+
5
+
- **Додано у версії:** PHP 7.4
6
+
- **Що дає:** компактний синтаксис для коротких функцій, які автоматично бачать змінні з оточення та завжди повертають результат.
7
+
8
+
## Особливості, які треба знати
9
+
10
+
- завжди повертають значення;
11
+
- можуть містити лише один вираз — без `{}` і багатооператорних блоків;
12
+
- автоматично успадковують змінні з оточення, без `use($x)`;
13
+
- читаються як вираз, а не як інструкція.
14
+
15
+
## Чому це зручно
16
+
17
+
- менше шаблонного коду;
18
+
- виразність у callback-ах (map, filter, reduce);
19
+
- краще читається, особливо в колекціях і стрімах;
20
+
- підходить для будь-якого місця, де потрібен мінімалістичний обробник.
21
+
22
+
## Реальні приклади застосування
23
+
24
+
### Перетворення масиву
25
+
26
+
```php
27
+
$prices = [100, 200, 300];
28
+
$tax = 0.2;
29
+
30
+
// ❌ Звичайна анонімна функція
31
+
$withTax = array_map(function (int $p) use ($tax) {
32
+
return $p * (1 + $tax);
33
+
}, $prices);
34
+
35
+
// ✅ Стрілкова функція
36
+
$withTax = array_map(fn(int $p) => $p * (1 + $tax), $prices);
37
+
```
38
+
39
+
### Фільтрація елементів
40
+
41
+
```php
42
+
$activeUsers = array_filter($users, fn(User $u) => $u->active);
43
+
```
44
+
45
+
### Підрахунок значення
46
+
47
+
```php
48
+
$total = array_reduce($orders, fn(int $sum, Order $o) => $sum + $o->amount, 0);
49
+
```
50
+
51
+
### Простий калькулятор з доступом до зовнішньої змінної
52
+
53
+
```php
54
+
$multiplier = 3;
55
+
$calc = fn(int $v) => $v * $multiplier;
56
+
57
+
echo $calc(10); // 30
58
+
```
59
+
60
+
## Висновок
61
+
62
+
> Стрілкові функції — це лаконічна форма анонімок, створена для чистих, коротких виразів у прямолінійній логіці.
63
+
64
+
Якщо тобі потрібен в коді `function ($x) use ($y) { return …; }` — просто заміни на `fn()` і відчуй різницю.
65
+
66
+
← [Попередня: Анонімні класи](/articles/from-tg/series/php-can-do/anonymous-classes) · [Уся серія](/articles/from-tg/series/php-can-do) · [Наступна: Генератори →](/articles/from-tg/series/php-can-do/generators)
67
+
68
+
---
69
+
70
+
*Вперше опубліковано в Telegram-каналі [«Створений щоб помирати»](https://t.me/php_while_true/76) 17.10.2025.*