Что такое анонимная функция php
Анонимные функции позволяют передавать в качестве параметров функции другие функции или присваивать их переменным.
Анонимная функция определяется как обычная функция за тем исключением, что она не имеет имени. Например:
Здесь переменной $hello присваивается анонимная функция. Эта функция также определяется с помощью ключевого слова function . Она также принимает параметры — в данном случае параметр $name . И также она имеет некоторый блок операторов.
Для вызова подобной функции применяется имя представляющей ее переменной:
Фактически подобная переменная применяется как стандартная функция.

Также анонимные функции могут возвращать некоторое значение:
Распространенным случаем применения анонимных функций является передача их параметрам других функции. Таким анонимные функции еще называют функциями обратного вызова или коллбеками (callback function). Рассмотрим простейший пример:
В данном случае функция welcome() имеет параметр $message , который внутри функции вызывается подобно функции $message() .
При вызове функции welcome() параметру $message передается анонимная функция, которая выводит строку «Hello!». В этоге при вызове
Фактически будет выполняться функция
Подобным образом мы можем передавать одну функцию различные анонимные функции:

В чем польза подобной передачи анонимных функций в качестве параметров? А польза заключается в том, что мы можем определить функцию, но на момент определения функции точно не знать, какие действия она будет выполнять при вызове. Либо просто сделать логику функции более гибкой. Например, нам надо определить функцию которая выводит сумму элементов массива:
Но теперь пойдем дальше: допустим, мы хотим, чтобы функция подсчитывала сумму только тех чисел, которые удовлетворяют определенному условию, например, только положительных чисел или только четных чисел. Но на момент определения функции мы не знаем, какое условие мы захотим использовать в будущем. И в этом случае мы можем использовать анонимные функции:
Здесь функция sum() в качестве второго параметра — $condition принимает другую функцию. В цикле при переборе массива с помощью этой функции мы проверяем, удовлетворяет ли элемент массива условию:
Причем сейчас мы не значем, что это будет за условие, как именно функция $condition будет работать. Мы только знаем, что она получает число и возвращает true , если число удовлетворяет условию, либо false — если не удовлетворяет.
И если только число соответствует условию, тогда прибавляем число к общему результату:
При вызове функции sum() в качестве параметра $condition передаются конкретные анонимные функции. Например, функиция, которая определяет, является ли число четным:
Логика функции проста: если остаток от деления числа на 2 равен 0, то число четное. и функция возвращает true .
Далее мы передаем эту функицию:
В итоге при вызове if($condition($number)) фактически будет выполняться функция $isEvenNumber() .
Что такое анонимная функция php
В этом разделе помещены уроки по PHP скриптам, которые Вы сможете использовать на своих ресурсах.
Фильтрация данных с помощью zend-filter
Когда речь идёт о безопасности веб-сайта, то фраза "фильтруйте всё, экранируйте всё" всегда будет актуальна. Сегодня поговорим о фильтрации данных.
Контекстное экранирование с помощью zend-escaper
Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.
Подключение Zend модулей к Expressive
Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.
Совет: отправка информации в Google Analytics через API
Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.
Подборка PHP песочниц
Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.
Совет: активация отображения всех ошибок в PHP
При поднятии PHP проекта на новом рабочем окружении могут возникнуть ошибки отображение которых изначально скрыто базовыми настройками. Это можно исправить, прописав несколько команд.
Агент
PHP парсер юзер агента с поддержкой Laravel, работающий на базе библиотеки Mobile Detect.
Анонимные, или лямбда-функции в php.

Привет всем и сегодня мы поговорим о том, что такое анонимные функции в php и где их использовать.
Анонимные функции, или по-другому лямбда-функции — это функции, у которых нет имени.
Пример обычной функции
<?php
function FuName($txt) <
echo «My text: «.$txt;
>
У нас есть функция, которая принимает один параметр. Дальше мы записываем имя функции в переменную и вызываем её. Ничего необычного. В ООП стиле это будет более оправдано.
$class = new MyClass();
$func = «bar»;
$class->$func();
?>
Анонимные функции
Если вы знакомы с анонимными функциями из языка JavaScript, то вам понятно, зачем они нужны, а если нет, то читайте дальше.
Чтобы вызвать нашу анонимную функцию где-то дальше в коде программы, мы можем присвоить её переменной
Заметьте, что в конце стоит ;, т.к. мы присваиваем переменной значение, равное функции. Но вся соль не в этом, а в том, что мы можем использовать эти функции в качестве callback-функций. Например:
Ключевое слово USE
Опять же, если вы знаете JavaScript, то это не будет для вас проблемой. Ключевое слово USE позволяет использовать приём замыкания, т.е. с его помощью мы можем достучаться до внешних переменных.
<?php
$mx = function ($high_val) <
return function ($val) use ($high_val) <
return $val > $high_val;
>;
>;
$i = array(1, 2, 3, 4, 5, 6, 7);
$o = array_filter($input, $max_comp(2));
?>
Здесь мы внутри нашей лямбда-функции используем глобальную переменную high_val. Чтобы это было возможным, мы должны после слова function и параметров в круглых скобках написать use и передать туда название внешней переменной, которую мы хотим использовать внутри кода функции.
Однако, мы не сможем поменять значение нашей глобальной переменной таким образом. Чтобы сделать это, нужно перед её названием указать знак &
<?php
$name = «Brian»;
$setName = function($n) use(&$name) <
$name = $n;
>;
Заключение
Итак, сегодня вы узнали, что такое анонимные функции в php и как их использовать. Удачи!