Анонимные функции PHP
Анонимная функция - это функция без какого-либо определенного пользователем имени. Такая функция также называется замыканием или лямбда-функцией. Иногда вам может понадобиться функция для одноразового использования. Замыкание - это анонимная функция, которая закрывается над средой, в которой она определена. В ней нужно указать ключевое слово use. Наиболее распространено использование анонимной функции для создания встроенной функции обратного вызова.
Синтаксис
$var = function ($arg1, $arg2) { return $val; };
Между ключевым словом function и открывающей скобкой нет имени функции.
После определения функции ставится точка с запятой, поскольку анонимные определения функций являются выражениями.
Функция присваивается переменной и вызывается позже, используя ее имя.
Когда она передается другой функции, которая может вызвать его позже, он называется обратным вызовом.
Верните его из внешней функции, чтобы он мог получить доступ к переменным внешней функции. Это называется закрытием.
Пример анонимной функции
<?php
$var = function ($x) {return pow($x,3);};
echo "cube of 4 = " . $var(4);
?>
Это даст следующий результат. −
cube of 4 = 64Анонимная функция обратного вызова
В следующем примере анонимная функция используется в качестве аргумента для встроенной функции usort(). Функция usort() сортирует данный массив с помощью функции сравнения
<?php
$arr = [10,3,70,21,54];
usort ($arr, function ($x , $y) {
return $x > $y;
});
foreach ($arr as $x){
echo $x . "\n";
}
?>
Это приведет к следующему результату. −
3 10 21 54 70Анонимная функция как замыкание
Замыкание также является анонимной функцией, которая может получить доступ к переменным вне своей области действия с помощью ключевого слова use
<?php
$maxmarks=300;
$percent=function ($marks) use ($maxmarks) {return $marks*100/$maxmarks;};
echo "marks=285 percentage=". $percent(285);
?>
Это даст следующий результат.
marks=285 percentage=95
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Программы на заказ
Отзывы
Контакты