在PHP中,如果在父類中定義了靜態屬性,那麼它不能在子類中重寫。但我想知道是否有任何解決方法。PHP中靜態成員的繼承
我想爲別人的(有點笨重的)函數編寫一個包裝。有問題的函數可以應用於許多不同的數據類型,但每個都需要不同的標誌和選項。但99%的時間,每種類型的默認值就足夠了。
這將是很好,如果這可以用繼承來完成,而不必每次都寫新功能。例如:
class Foo {
public static $default = 'DEFAULT';
public static function doSomething ($param = FALSE) {
$param = ($param === FALSE) ? self::$default : $param;
return $param;
}
}
class Bar extends Foo {
public static $default = 'NEW DEFAULT FOR CHILD CLASS';
}
echo Foo::doSomething() . "\n";
// echoes 'DEFAULT'
echo Bar::doSomething() . "\n";
// echoes 'DEFAULT' not 'NEW DEFAULT FOR CHILD CLASS'
// because it references $default in the parent class :(
這將是可愛的,感謝您的信息。但是,唉,我需要一些能夠在我當前的生產環境中運行的東西(5.2.6)。謝謝! – PartialOrder 2009-02-10 16:53:48