douxi4287 2013-10-10 18:49
浏览 62
已采纳

一个类中的闭包数组

It appears you can't have an array of callable methods defined within the scope of a class. Why not?

Why is this valid PHP (see http://3v4l.org/1JeQr)

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

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

But not this (see http://3v4l.org/FL449)

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

var_dump(Foo::$methods[1]('a', 'a'));
  • 写回答

2条回答 默认 最新

  • drqja5919276 2013-10-10 19:24
    关注

    A very quick answer since I am working from mobile phone (can eventually edit later.

    Defining a closure actually performs an instantiation of an object of type Closure. PHP only supports native internal types as default values for your classes, which means that constructing a closure obviously won't work.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题