私有静态属性中的匿名函数

时间:2015-11-13 22:55:16

标签: php php-7

导致问题的代码的简化版本是:

class Test {
    private static $foo = [
        "bar" => "baz",
        "callable" => function() {echo "Derp";}
    ];
};
var_dump(new Test());

上述抛出:

  

PHP致命错误:常量表达式包含第5行中的无效操作

是否有任何干净的选择,或者我必须求助于......

class Test {
    private static $foo = null;
    public static function initFoo() {
        self::$foo = self::$foo ?? [
            "bar" => "baz",
            "callable" => function() {echo "Derp";}
        ];
    }
}
Test::initFoo();
var_dump(new Test());

以上作品。只是想知道是否有更好的方法来做到这一点。令人遗憾的是,callable不被认为是静态的,考虑到它们(据我所知)不需要做任何评估 - 即使这样,我们现在对静态属性进行基本操作......

0 个答案:

没有答案