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

时间:2013-07-29 20:50:02

标签: php class variables static static-methods

我正在尝试将静态方法的输出分配给PHP中的静态变量,但始终会出错。

解析错误:语法错误,第8行的./MyClass.php中的意外T_FUNCTION

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行得到了同样的错误。我经历了很多次,我没有看到任何错别字,所以我不确定我做错了什么。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

通过在声明时调用函数,无法为静态变量赋值。

引自manual(我的重点):

  

通过使用public,protected或private之一,然后是普通变量声明来定义它们。此声明可能包括初始化,但此初始化必须是常量值 - 也就是说,必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估

答案 1 :(得分:1)

变化:

public static myMethod()

要:

public static function myMethod()
相关问题