php 靜態(tài)變量的初始化
更新時間:2009年11月15日 23:05:44 作者:
php的成員變量可以在聲明的同時進行初始化,但是只能用標量進行初始化。
例如:
class A {
public $f1 = 'xxxx';
static public $f2 = 100;
}
如果要將變量賦值為對象,那么只能在構造器中進行初始化,例如:
class A {
private $child;
public function __construct() {
$this->child = new B();
}
}
但是php中并沒有一個類似java中的靜態(tài)構造器/靜態(tài)塊的東西,就沒有合適的時機對其進行初始化了。
對于共有的成員還有辦法解決,例如:
class A {
static public $child;
}
A::$child = new B();
對于私有的成員似乎就沒有什么干凈的方法了,只能這樣做:
class A {
static private $child;
static public initialize() {
self::$child = new B();
}
}
A::initialize();
class A {
public $f1 = 'xxxx';
static public $f2 = 100;
}
如果要將變量賦值為對象,那么只能在構造器中進行初始化,例如:
class A {
private $child;
public function __construct() {
$this->child = new B();
}
}
但是php中并沒有一個類似java中的靜態(tài)構造器/靜態(tài)塊的東西,就沒有合適的時機對其進行初始化了。
對于共有的成員還有辦法解決,例如:
class A {
static public $child;
}
A::$child = new B();
對于私有的成員似乎就沒有什么干凈的方法了,只能這樣做:
class A {
static private $child;
static public initialize() {
self::$child = new B();
}
}
A::initialize();
相關文章
php簡單開啟gzip壓縮方法(zlib.output_compression)
網上的教程基本是你抄我來我抄他,不外乎加頭加尾或者自構函數兩種寫法。實際上每個php頁面都要去加代碼——當然也可以include引用,不過總顯得略微麻煩2013-04-04