私は次のように基本クラスを宣言する場合:その後、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 が、私はそれをチェックアウト行くと彼らのサポートを貸すために人々を励まします。これはかなり限定的な制限です。現在の行動も全く無意味です。 –
人々は直感的ではないデフォルトの行動に自ら辞任したようです。ここでの問題は、PHPのデフォルトの動作が正しくないか、またはプロパティを動的に宣言する必要があることです。 –
私はあなたのクエストであなたを完全にサポートしています。この動作は非常に面倒です!残念ながら、ここに滞在するようです。 – djfm