На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Анонимные функции 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 - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.



тегизаметки, php, функции





Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Ошибка 0xc000007b при запуске Visual Studio 2013
Живой поиск для любого сайта


© upread.ru 2013-2022
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.