Анонимные функции в PHP
Анонимная функция - как и следует из названия - не имеет имени. Во всем остальном - это обычная функция. Из-за отсутствия названия анонимные функции используются для передачи в качестве параметров функции другие функции или присваивания их переменным.
/** Присваиваем переменной анонимную ф-цию */
$hello = function($name)
{
echo "<h2>Hello $name</h2>";
};
Анонимная функция определяется с помощью ключевого слова function и принимает параметр $name. Также она имеет некоторый блок операторов. Для вызова подобной функции применяется имя представляющей ее переменной
$hello("World");
Фактически подобная переменная применяется как стандартная функция.
<?php
$hello = function($name)
{
echo "<h2>Hello $name</h2>";
};
$hello("Tom");
$hello("Bob");
?>
Также анонимные функции могут возвращать некоторое значение:
<?php
$sum = function($a, $b)
{
return $a + $b;
};
$number = $sum(5, 11); //16
echo $number;
?>
Распространенным случаем применения анонимных функций является передача их параметрам других функции. Такие анонимные функции еще называют функциями обратного вызова или коллбеками (callback function).
<?php
function welcome($message)
{
$message();
}
welcome(function()
{
echo "Hello!";
});
?>
В данном случае функция welcome() имеет параметр $message, который внутри функции вызывается подобно функции $message(). При вызове функции welcome() параметру $message передается анонимная функция, которая выводит строку "Hello!". Подобным образом мы можем передавать в одну функцию различные анонимные функции
<?php
function welcome($message)
{
$message();
}
$goodMorning = function() { echo "<h3>Доброе утро</h3>"; };
$goodEvening = function() { echo "<h3>Добрый вечер</h3>"; };
welcome($goodMorning); // Доброе утро
welcome($goodEvening); // Добрый вечер
welcome(function(){ echo "<h3>Привет</h3>"; }); // Привет
?>
Важлива інформація
України
втрати противника
орієнтовно склали: