Как правильно пользоваться анонимными функциями в php?

Пользователь

от delphine_bartoletti , в категории: PHP , год назад

Как правильно пользоваться анонимными функциями в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от rebekah , год назад

@delphine_bartoletti 

Анонимные функции в PHP являются функциями, которые не имеют имени и могут быть определены и вызваны в одном месте. Они часто используются в качестве параметров для других функций, таких как array_map(), array_filter() и usort(), которые ожидают функцию в качестве аргумента.


Вот несколько примеров того, как правильно использовать анонимные функции в PHP:

  1. Простая анонимная функция:
1
2
3
4
5
$greeting = function($name) {
    echo "Hello, $name!";
};

$greeting("John"); // выводит "Hello, John!"


  1. Анонимная функция внутри вызова функции:
1
2
3
4
5
6
$numbers = [1, 2, 3, 4, 5];
$filtered_numbers = array_filter($numbers, function($number) {
    return $number % 2 == 0;
});

print_r($filtered_numbers); // выводит Array ( [1] => 2 [3] => 4 )


  1. Использование анонимной функции в качестве параметра для функции usort():
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$numbers = [5, 2, 8, 1, 9];

usort($numbers, function($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
});

print_r($numbers); // выводит Array ( [0] => 1 [1] => 2 [2] => 5 [3] => 8 [4] => 9 )


  1. Использование анонимной функции с use:
1
2
3
4
5
6
7
8
$multiplier = 2;
$numbers = [1, 2, 3, 4, 5];

$multiplied_numbers = array_map(function($number) use ($multiplier) {
    return $number * $multiplier;
}, $numbers);

print_r($multiplied_numbers); // выводит Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )


Здесь мы использовали ключевое слово "use", чтобы передать переменную $multiplier в анонимную функцию, которая используется в array_map().