可能重复:
将数组定义为类的属性时出现语法错误
我正在尝试执行以下操作:
final class TestClass {
public static $myvar = 10*10; //line 3
//rest of code...
}
Run Code Online (Sandbox Code Playgroud)
但是我收到了这个错误: syntax error, unexpected '*', expecting ',' or ';' [line 3]
为什么这不可能?当然,如果我将10*10更改为100,一切正常.是否不允许使用数学计算初始化静态变量?不可能以任何方式?
Mik*_*eSW 10
来自php docs
与任何其他PHP静态变量一样,静态属性只能使用文字或常量初始化; 表达式是不允许的.因此,虽然您可以将静态属性初始化为整数或数组(例如),但您可能不会将其初始化为另一个变量,函数返回值或对象.
我认为你必须像这样在你的类上创建一个静态init方法
final class TestClass {
public static $myvar = null; //line 3
public static function init() {
self::$myvar = 10*10;
}
//rest of code...
}
Run Code Online (Sandbox Code Playgroud)
并首先像这样调用init
TestClass::init();
Run Code Online (Sandbox Code Playgroud)
这就是静态方式