我正在尝试在我的类
中的数组中使用变量class MyClass {
public static $a = "World";
public static $b = array("Hello" => self::$a);
}
此代码不起作用。我应该使用MyClass::$a
还是别的。有什么想法吗?
答案 0 :(得分:3)
如果您的$ a不会改变,请将其设为常量
class MyClass {
const a = "World";
public static $b = array("Hello" => self::a);
}
var_dump(MyClass::$b);
答案 1 :(得分:3)
您可能可以在运行时实例化它们:
class MyClass {
public static $a;
public static $b;
}
MyClass::$a = "World";
MyClass::$b = [ "Hello" => MyClass::$a ];
或者您可以创建静态初始化方法:
class MyClass {
public static $a;
public static $b;
public static function init(){
static::$a = "World";
static::$b = [ "Hello" => static::$a ];
}
}
MyClass::init();
答案 2 :(得分:1)
class MyClass {
public static $a = "World";
public static $b;
public function __construct(){
self::$b = array("Hello" => self::$a);
}
}
$obj = new MyClass();