在php中将静态方法输出分配给静态成员变量
我试图将静态方法的输出分配给PHP中的静态变量,但总是会出错 分析错误:语法错误,第8行的./MyClass.php中出现意外的T_函数在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
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()吗?是的,但这不是问题所在。这个论坛的打字错误,不是我的课,我已经编辑过了。马克·贝克击中了下面的钉子。