一个类中的闭包数组

Lee*_*vis 4 php

看来你不能在类的范围内定义一组可调用方法.为什么不?

为什么这是有效的PHP(参见http://3v4l.org/1JeQr)

$methods = array(
    1 => function($subject, $value){
        return ($subject == $value);
    }
);

var_dump($methods[1]('a', 'a'));
Run Code Online (Sandbox Code Playgroud)

但不是这个(见http://3v4l.org/FL449)

class Foo {
    public static $methods = array(
        1 => function($subject, $value){
            return ($subject == $value);
        }
    );
}

var_dump(Foo::$methods[1]('a', 'a'));
Run Code Online (Sandbox Code Playgroud)

Ocr*_*ius 5

因为我在手机上工作,所以答案很快(最终可以编辑.

定义闭包实际上执行类型对象的实例化Closure.PHP仅支持本机内部类型作为类的默认值,这意味着构造闭包显然不起作用.