Стрілочні функції

Стрілецькі функції з'явилися в PHP 7.4, як більш лаконічний синтаксис для анонімних функцій

І анонімні, і стрілочні функції реалізовані з використанням класу Closure

Основний вид запису стрілочних функцій: fn (argument_list) => expr

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

Коли змінну, що використовується у виразі, визначено в батьківській області, вона буде неявно захоплена за значенням. У прикладі функції $fn1 і $fn2 поводяться однаково.

Приклад #1 Стрілецькі функції захоплюють змінні за значенням автоматично

Loading...

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

4

Це також працює у вкладених стрілочних функціях:

Приклад #2 Стрілецькі функції захоплюють змінні за значенням автоматично, навіть коли вони вкладені

Loading...

Подібно до анонімних функцій, синтаксис стрілочних функцій допускає довільні сигнатури функцій, включаючи типи параметрів і значень, що повертаються, значення за замовчуванням, змінні, а також передачу і повернення за посиланням. Нижче наведено коректні приклади стрілочних функцій:

Приклад #3 Приклади використання стрілочних функцій

Loading...

Стрілецькі функції використовують прив'язку змінних за значенням. Це приблизно еквівалентно виконанню use($x) для кожної змінної $x, яка використовується всередині стрілочної функції. Прив'язка за значенням означає, що неможливо змінити будь-які значення із зовнішньої області. Натомість можна використовувати анонімні функції для прив'язок за посиланнями.

Приклад #4 Значення із зовнішньої області видимості не можуть бути змінені стрілочними функціями

Loading...

список змін

ВерсияОпис
7.4.0Стали доступні стрілочні функції.

Примітки

Зауваження: Можна використовувати func_num_args() func_get_arg() і func_get_args() у стрілочній функції.