Назад к вопросам
Junior
156
questionbank
Что такое лямбда-функции и анонимные функции? Расскажите о них.
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Лямбда-функции и анонимные функции в PHP — это, по сути, одно и то же: функции без имени.
Они могут быть присвоены переменной и переданы в качестве аргумента другим функциям.
Основные отличия от обычных функций:
- Отсутствие имени: Определяются с ключевым словом
function. - Могут быть присвоены переменной: Переменная становится вызываемой.
- Могут быть переданы как callback: Используются в функциях высшего порядка (
array_map,array_filterи т.д.). - Могут "захватывать" переменные из родительской области видимости: С помощью ключевого слова
use.
Пример присвоения переменной:
<?php
$greet = function($name) {
printf("Привет, %s!\n", $name);
};
$greet('Мир');
Пример использования как callback:
<?php
$numbers = [1, 2, 3, 4, 5];
$squaredNumbers = array_map(function($n) {
return $n * $n;
}, $numbers);
print_r($squaredNumbers);
Пример "захвата" переменных:
<?php
$message = 'Привет';
$greet = function($name) use ($message) {
printf("%s, %s!\n", $message, $name);
};
$greet('Мир');
Ключевое слово use позволяет анонимной функции получить доступ к переменным, определенным в области видимости, где она была создана. Переменные, переданные в use, копируются по значению, если не указать ссылку (&).
Они широко используются для создания коротких, одноразовых функций, часто внутри других функций или методов для выполнения специфических задач.