![]() |
Анонимные функции 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 - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда. ![]() |
Мои услуги
|
© upread.ru 2013-2022 При перепечатке активная ссылка на сайт обязательна. |