Стрілочні функції
Стрілецькі функції з'явилися в 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() у стрілочній функції.