我试图将一个静态方法的输出分配给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()