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