Анонімні, або лямбда-функції в php.

Відео: Лямбда-вирази в Java 8

Анонімні, або лямбда-функції в php.

Відео: Урок 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 і як їх використовувати. Успіхів!

Поділися в соціальних мережах:

Схожі
Відмінності між function declaration і function expression в jаvascript.Відмінності між function declaration і function expression в jаvascript.
Автоматичне завантаження класів в php з використанням spl_autoload.Автоматичне завантаження класів в php з використанням spl_autoload.
Кросбраузерності події.Кросбраузерності події.
Масштабування зображень в phpМасштабування зображень в php
Об`єкт object в jаvascriptОб`єкт object в jаvascript
Об`єкт window в jаvascriptОб`єкт window в jаvascript
Обрізка зображень в phpОбрізка зображень в php
Математичні функції в phpМатематичні функції в php
Nodejs. Шаблони модулів.Nodejs. Шаблони модулів.
Що таке замикання в jаvascript.Що таке замикання в jаvascript.
» » Анонімні, або лямбда-функції в php.