015 Замыкания
Можно использовать замыкания (a.k.a. анонимные функции) в Zephir; они совместимы с PHP и могут быть возвращены в пользовательскую среду PHP:
namespace MyLibrary;
class Functional
{
public function map(array! data)
{
return function(number) {
return number * number;
};
}
}
Оно также может быть выполнено непосредственно в Zephir и передан в качестве параметра другим функциям / методам:
namespace MyLibrary;
class Functional
{
public function map(array! data)
{
return data->map(function(number) {
return number * number;
});
}
}
Короткий синтаксис также доступен для определения замыканий:
namespace MyLibrary;
class Functional
{
public function map(array! data)
{
return data->map(number => number * number);
}
}