Herencia de miembros estáticos en PHP

En PHP, si se define un atributo estático en la clase primaria, no se puede anular en una clase secundaria. Pero me pregunto si hay alguna forma de evitar esto.

Estoy tratando de escribir un contenedor para la función de otra persona (algo torpe). La función en cuestión se puede aplicar a muchos tipos de datos diferentes, pero requiere diferentes indicadores y opciones para cada uno. Pero el 99% del tiempo, un valor predeterminado para cada tipo sería suficiente.

Sería bueno si esto se pudiera hacer con herencia, sin tener que escribir nuevas funciones cada vez. Por ejemplo

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 :(

Respuestas a la pregunta(3)

Su respuesta a la pregunta