微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 类中的闭包数组

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

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

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

var_dump($methods[1]('a', 'a'));

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

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

var_dump(Foo::$methods[1]('a', 'a'));

解决方法:

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐