Statik bir özellik üst sınıfında tanımlanmış ise PHP, bir çocuğun sınıfta geçersiz kılınamaz. Bu etrafında herhangi bir yolu var ama eğer ben merak ediyorum.
Ben başkasının (biraz aksak) fonksiyonu için bir sarıcı yazmaya çalışıyorum. Söz konusu işlevi farklı veri tiplerinin çok uygulanan ama her biri için farklı bayraklar ve seçenekleri gerektirir. Fakat% 99, her bir tür için varsayılan bir yeterli olacaktır.
Bu miras ile yapılabilir eğer yeni fonksiyonlar her zaman yazmak zorunda kalmadan, güzel olurdu. Örneğin:
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 :(