例如:
class A {
public $f1 = 'xxxx';
static public $f2 = 100;
}
如果要將變量賦值為對象,那麼只能在構造器中進行初始化,例如:
class A {
private $child;
public function __construct() {
$this->child = new B();
}
}
但是php中並沒有一個類似java中的靜態構造器/靜態塊的東西,就沒有合適的時機對其進行初始化了。
對於共有的成員還有辦法解決,例如:
class A {
static public $child;
}
A::$child = new B();
對於私有的成員似乎就沒有什麼干淨的方法了,只能這樣做:
class A {
static private $child;
static public initialize() {
self::$child = new B();
}
}
A::initialize();