Анонімні, або лямбда-функції в php.
Відео: Лямбда-вирази в Java 8
Відео: Урок 5 - Функції в PHP
Привіт всім і сьогодні ми поговоримо про те, що таке анонімні функції в php і де їх використовувати.
Анонімні функції, або по-іншому лямбда-функції - це функції, у яких немає імені.
Відео: З ++. Урок 17. Лямбда-вирази
Приклад звичайної функції
lt ;?php
functionFuName($ txt){
echo "My text:".$ txt-
}
$ func ="FuName"-
$ func("My text") -
?gt;
У нас є функція, яка приймає один параметр. Далі ми записуємо ім`я функції в змінну і викликаємо її. Нічого незвичайного. В ООП стилі це буде більш виправдано.
lt ;?php
classMyClass{
function bar(){
// код
}
}
$ class =newMyClass() -
$ func ="Bar"-
$ class-gt;$ func() -
?gt;
Анонімні функції
Якщо ви знайомі з анонімними функціями з мови jаvascript, то вам зрозуміло, навіщо вони потрібні, а якщо немає, то читайте далі.
Щоб викликати нашу анонімну функцію десь далі в коді програми, ми можемо привласнити її змінної
lt ;?php
$ func =function(){
// код
} -
$ func() -
?gt;
Зауважте, що в кінці стоїть -, тому ми присвоюємо змінної значення, рівне функції. Але вся сіль не в цьому, а в тому, що ми можемо використовувати ці функції в якості callback-функцій. наприклад:
lt ;?php
$ val = array_filter($ input,function($ v){return $ v gt;2-}) -
?gt;
Ключове слово USE
Знову ж таки, якщо ви знаєте jаvascript, то це не буде для вас проблемою. Ключове слово USE дозволяє використовувати прийом замикання, тобто з його допомогою ми можемо достукатися до зовнішніх змінних.
Відео: Делегати, анонімні методи, лямбда-вирази, події
lt ;?php
$ mx =function($ high_val){
returnfunction($ val)use($ high_val){
return $ val gt; $ high_val-
} -
} -
$ i = array(1,2,3,4,5,6,7) -
$ o = array_filter($ input, $ max_comp(2)) -
?gt;
Тут ми всередині нашої лямбда-функції використовуємо глобальну змінну high_val. Щоб це було можливим, ми повинні після слова function і параметрів в круглих дужках написати use і передати туди назву зовнішньої змінної, яку ми хочемо використовувати всередині коду функції.
Однак, ми не зможемо поміняти значення нашої глобальної змінної таким чином. Щоб зробити це, потрібно перед її назвою вказати знак
lt ;?php
$ name ="Brian"-
$ setName =function($ n)use($ name){
$ name = $ n-
} -
$ setName("David") -
echo $ name-
?gt;
висновок
Отже, сьогодні ви дізналися, що таке анонімні функції в php і як їх використовувати. Успіхів!
- Як запустити php-функцію натисканням на посилання
- Що нового в php7.1: робота з групою винятків.
- Що таке замикання в jаvascript.
- Nodejs. Як працюють function expression.
- Стрілочні функції в es6.
- Об`єкт window в jаvascript
- Масштабування зображень в php
- Nodejs. Шаблони модулів.
- Створення функцій в jаvascript
- Створення функцій в php
- Функція sscanf в php
- Вивчаємо coffeescript. Функції.
- Об`єкт object в jаvascript
- Обрізка зображень в php
- Відмінності між function declaration і function expression в jаvascript.
- Об`єкти, прототипи і конструктори в мові jаvascript.
- Глобальні змінні в php
- Математичні функції в php
- Кросбраузерності події.
- Анонімні самовизивающіеся функції і функції зворотного виклику в jаvascript.
- Автоматичне завантаження класів в php з використанням spl_autoload.