Приключване на PHP (анонимни функции)
Приключване и анонимни функции в PHP - това е нормално функции, но без име. Нека разгледаме един пример за тази функция:
В този пример, има анонимна функция, но няма смисъл. Възниква въпросът - как да се използват тези функции? Следващият пример ще ви помогне да разберете това:
В този пример, ние присвоите анонимен функция променлива, тогава ние започнахме изпълнението на тази функция, закриването на синтаксиса $ ();. което е, ние името на променливата скоби добавени като функция разговор. Моля, имайте предвид, знакът $ в името на променливата, които не премахнахме.
Но този пример не е много удобен за използване, тъй като може просто ispolzovant функция.
Както се използва в практиката схема
Обикновено анонимни функции или затваряне в PHP са свикнали да ги мине като параметри на други функции. PHP има някои вградени функции, които взема като аргументи на веригата, но това ще бъде написано по-долу.
Нека да повече да усложни нашия пример.
Тук сме създали редовна функция doStuff () и преминава като параметър в нашия анонимен функция от променлива затваряне от $. и след това да го изпълните в функция doStuff () на тялото.
В този пример, doStuff () функция не е достатъчно, за проверка на променлива закриването на $ от вида. За да doStuff () функция работи правилно в параметъра трябва да съдържа анонимен функция.
is_callable () функция
Анонимни функции в PHP се осъществява чрез използване на вграден клас Затварящо устройство (PHP 5> = 5.3.0, PHP 7). Това означава, че всеки анонимен функция е обект на този клас.
Закриване клас обекти се наричат също Псевдо Обратни повиквания / Callables. Принадлежността променлива на този вид данни може да се провери като се използва is_callable функция ().
Моля, имайте предвид, gettype функция определя типа на променлива закриването на $ като обект. Затова is_object функция също ще се върне към вярно. но това не е адекватен тест в този случай. Circuit трябва да се провери точно is_callable функция.
Използването на проектиране
Анонимният функция може да се направи видима променлива в обхвата майка и при използване дизайн. Ето един пример:
С помощта на ключовата дума се използва анонимен функция, можете да подадете няколко променливи, те perecheslyat в скоби, разделени със запетая.
Също така е важно да се разбере, че използването дизайн го прави видими променливи от обхвата родител, но това не е същото като променливи от глобалния обхват. Global обхват не се променя с промяната на изпълнение на функциите различна степен на гнездене.
Аргументите в анонимни функции
Анонимният функцията може да бъде предаден аргументи. Нека дам един пример за един аргумент в нашата функция.
С аргумент е много проста, анонимни функции тук не са по-различни от обичайните.
preg_replace_callback функция
Обещах на няколко вградени функции на PHP, които вземат като аргумент верига, ето една от тях: preg_replace_callback
preg_replace_callback - Извършване на търсене на регулярен израз и да се замени с помощта на обаждане-функции (затваряне).
- $ Модела - желания шаблон може да бъде или низ или масив от низове.
- $ Обратно повикване - нарича обратно повикване функция, която е масив от съвпадащи елементи на сюжетната линия ще бъде предоставена. Обратно повикване функция трябва да се върне низа със замяната.
- $ Тема - низ или масив от низове за търсене и замяна на.
Този кратък синтаксис, подробности за възможностите на тази функция, можете да проверите ръководството онлайн на PHP.
Още функции вземат аргументи верига: array_filter. array_map. array_reduce. usort.
функция call_user_func
Функция call_user_func - Обадете се на потребителска функция, дадена от първия параметър. Функцията връща резултата или иначе връща.
Примери за използване call_user_func:
Пример call_user_func използва в OOP.
Закриване клас
Както съм написал, анонимни функции в PHP се изпълняват с помощта на класа на закриване. Всички анонимни функции са обекти на вградения клас ..
Също така имайте предвид, че когато се обадите на обекта като функция, наречена магически метод __invoke (от PHP5.3).