Можно использовать замыкания (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);
    }
}

Содержание.

Предыдушая  Следующая