Функция или метод как значение в коллекции

Можно ли передать вызов функции или метода в качестве значения в коллекции любого типа?

$collection = Vector {
    function(){}
};

Приведенный выше код генерирует фатальную ошибку: синтаксическая ошибка, неожиданный T_FUNCTION, ожидание '}'

1 ответ

Решение

К сожалению, это выглядит как ограничение синтаксического анализатора HHVM. Ниже приведены несколько вариантов работы с местными жителями. Не стесняйтесь подавать проблему на GitHub для поддержки буквального синтаксиса в исходном вопросе, если он важен для вас.

Опция 1:

$v = Vector {};
$f = function () {};
$v[] = $f;

Вариант 2:

$f = function () {};
$v = Vector {$f};

и т.п.

Другие вопросы по тегам