en PHP, si un atributo estático se define en la clase padre, no puede ser anulado en una clase de niños. Pero me pregunto si hay alguna forma de evitar esto.La herencia de los miembros estáticos en PHP
Estoy intentando escribir un envoltorio para la función de otra persona (un poco anticuado). 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 por defecto para cada tipo sería suficiente.
Sería bueno si esto se podría hacer con la 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 :(
Esto sería encantador y gracias por la información. Pero, por desgracia, necesito algo que funcione en mi entorno de producción actual (5.2.6). ¡GRACIAS! – PartialOrder