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); } }