次のように基本クラスを宣言するとします。
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"
メソッドだけでなく、最初のクラスから継承する 2 番目のクラスにもプロパティを継承させる方法はありますか?
PHP の後期静的バインディングと、これを可能にする継承について何かがあるかどうか疑問に思っています。私はすでにこれを回避しています...しかし、宣言されていない静的プロパティが値のためにその親にフォールバックすることは意味がないようです!?