如果我宣布一个基类如下:有没有办法让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