6
让我们先从一些代码:为什么后期静态绑定不能在PHP 5.3中使用变量?
class Super {
protected static $color;
public static function setColor($color){
self::$color = $color;
}
public static function getColor() {
return self::$color;
}
}
class ChildA extends Super { }
class ChildB extends Super { }
ChildA::setColor('red');
ChildB::setColor('green');
echo ChildA::getColor();
echo ChildB::getColor();
现在,延迟静态使用静态关键字在PHP 5.3结合的伟大工程静态方法,所以我认为它会做同样的神奇静态变量。好吧,看起来没有。上面的例子并没有像我第一次预期的那样打印出“红色”,然后是“绿色”,而是“绿色”和“绿色”。为什么这不适用于变量处理方法?有没有其他方法可以达到我预期的效果?
非常感谢,Lekensteyn。这确实有点遗憾一些继承的舒适一点点,但我会管理:) – 2011-05-14 07:34:51
谢谢这真的帮助。我陷入了同一陷阱;我错过了在子类中重新定义变量!你有没有关于这方面的任何文献,因为我似乎错过了PHP文档中的这个重要部分。 – Meberem 2012-01-15 13:02:11