En PHP, si un attribut statique est défini dans la classe parent, il ne peut pas être substitué dans une classe enfant. Mais je me demande s'il y a un moyen de contourner cela. J'essaye d'écrire une enveloppe pour la fonction de quelqu'un d'autre (quelque peu maladroite). La fonction en question peut être appliquée à un grand nombre de types de données différents, mais nécessite des indicateurs et des options différents pour chacun. Mais 99% du temps, un défaut pour chaque type suffirait.Héritage des membres statiques dans PHP
Ce serait bien si cela pouvait être fait avec l'héritage, sans avoir à écrire de nouvelles fonctions à chaque fois. Par exemple:
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 :(
Ce serait charmant et merci pour l'info. Mais hélas, j'ai besoin de quelque chose qui fonctionnera dans mon environnement de production actuel (5.2.6). MERCI! – PartialOrder