将静态方法输出分配给php中的静态成员变量


Assign static method output to static member variable in php

我试图将一个静态方法的输出分配给PHP中的一个静态变量,但总是会出错。

分析错误:语法错误,中出现意外的T_FUNCTION/第8行上的MyClass.php

class MyClass
{
    public static function myMethod()
    {
        return array('a' => 'b'); //some array
    }
    public static $myarr = self::myMethod();
}

我也试过。。。

class MyClass
{
    public static $myarr = call_user_func(function
        {
            return array('a' => 'b'); //some array
        }
    );
}

但我在第3行也出现了同样的错误。我已经经历了很多次了,我没有看到任何拼写错误,所以我不确定我做错了什么。有什么想法吗?

不能通过在声明时调用函数来为静态变量赋值。

引用手册(我的重点):

它们是通过使用一个关键字public、protected或private来定义的,后跟一个普通变量声明。此声明可能包括一个初始化,但此初始化必须是一个常数值——也就是说,它必须能够在编译时进行求值,并且必须不依赖于运行时信息才能进行求值

更改:

public static myMethod()

收件人:

public static function myMethod()