如果我宣佈一個基類如下:有沒有辦法讓PHP的子類繼承屬性(靜態和實例)?
abstract class Parent {
protected static $message = "UNTOUCHED";
public static function yeah() {
static::$message = "YEAH";
}
public static function nope() {
static::$message = "NOPE";
}
public static function lateStaticDebug() {
return(static::$message);
}
}
,然後擴展它:
class Child extends Parent {
}
,然後做到這一點:
Parent::yeah();
Parent::lateStaticDebug(); // "YEAH"
Child::nope();
Child::lateStaticDebug(); // "NOPE"
Parent::yeah();
Child::lateStaticDebug() // "YEAH"
有沒有辦法讓我的第二從第一個繼承的類也繼承屬性,而不僅僅是方法?
我只是想知道是否有關於PHP的晚期靜態綁定和繼承,這將允許這一點。我已經開始解決這個問題了......但是,如果一個未聲明的靜態屬性會爲其價值回落到它的父項上,似乎沒有意義!
我已經創建了下面的PHP錯誤報告: http://bugs.php.net/49105 我鼓勵人們去檢查出來,並給予支持。這是一個相當嚴格的限制。目前的行爲也完全沒有意義。 – 2009-07-30 00:43:21
似乎人們已經將自己辭退到了不直觀的默認行爲上。這裏的問題是PHP不正確的默認行爲,或者需要一種動態聲明屬性的方法。 – 2009-07-30 13:13:43
我完全支持你的追求,這種行爲非常煩人!不幸的是,它似乎在這裏停留。 – djfm 2012-06-30 15:10:13