0

我试图将静态方法的输出分配给 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 行遇到了同样的错误。我已经经历了很多次,我没有看到任何拼写错误,所以我不确定我做错了什么。有任何想法吗?

4

2 回答 2

4

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

引用手册(我的重点):

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

于 2013-07-29T21:03:46.137 回答
1

改变:

public static myMethod()

至:

public static function myMethod()
于 2013-07-29T20:55:45.223 回答