Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中将静态方法输出分配给静态成员变量_Php_Class_Variables_Static_Static Methods - Fatal编程技术网

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

在php中将静态方法输出分配给静态成员变量,php,class,variables,static,static-methods,Php,Class,Variables,Static,Static Methods,我试图将静态方法的输出分配给PHP中的静态变量,但总是会出错 分析错误:语法错误,第8行的./MyClass.php中出现意外的T_函数 class MyClass { public static function myMethod() { return array('a' => 'b'); //some array } public static $myarr = self::myMethod(); } 我也试过 class MyCla

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

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

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 static myMethod()
致:

更改:

public static myMethod()
致:


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

引用(我的重点):

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


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

引用(我的重点):

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


应该是公共静态函数myMethod()是的,但这不是问题所在。这个论坛的打字错误,不是我的课,我已经编辑过了。马克·贝克(MarkBaker)一针见血。它不应该是公共静态函数myMethod()吗?是的,但这不是问题所在。这个论坛的打字错误,不是我的课,我已经编辑过了。马克·贝克击中了下面的钉子。