函数或方法作为集合中的值

Function or method as value in collection

是否可以在任何类型的集合中将函数或方法调用作为值传递?

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

上面的代码抛出致命错误:语法错误,意外 T_FUNCTION,需要“}”

糟糕,这看起来像是 HHVM 解析器的限制。以下是使用本地人解决它的一些选项。如果对您很重要,请随时 file an issue on GitHub 支持您原始问题中的文字语法。

选项 1:

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

选项 2:

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

等等