Mastershrimp: Statische Methode einer abstrakten Klasse aufrufen

Beitrag lesen

Heyho!

Der Titel ist nicht ganz korrekt: Eigentlich meine ich,

Wie rufe ich eine statische Methode einer Klasse auf, die diese statische Methode von einer abstrakten Klasse aufgezwungen bekommt? Der Haken ist, der Aufruf soll aus der abstrakten Klasse erfolgen - die ja zum Implementierungszeitpunkt noch nicht ihre konkreten erbenden Klassen kennt.

Code-Bsp (nur schnell dahingetippt, muss nicht funktionieren):

  
abstract class AbstrakteKlasse {  
  
public function eineObjektMethode() {  
XXX::eineAbstrakteStatischeMethode();  
}  
  
abstract public static function eineAbstrakteStatischeMethode();  
}  
  
  
  
class Weihnachten extends AbstrakteKlasse {  
public static function eineAbstrakteStatischeMethode() {  
echo("Bald ist Weihnachten");  
}  
}  
  
  
  
class Ostern extends AbstrakteKlasse {  
public static function eineAbstrakteStatischeMethode() {  
echo("Bald ist Ostern");  
}  
}  
  
  
$w = new Weihnachten();  
$w->eineObjektMethode(); // Soll "Bald ist Weihnachten" ausgeben  

Der Aufruf müsste ja jetzt eigentlich anstelle des "XXX" "Weihnachten" haben, also Weihnachten::eineAbstrakteStatischeMethode();

Nur wie komm ich an "Weihnachten"?

__CLASS__::eineAbstrakteStatischeMethode(); ists nicht, war mal so'n Versuch ohne groß zu wissen obs Sinn macht

Auch $self::eineAbstrakteStatischeMethode(); wirf die lustige "unexpected T_PAAMAYIM_NEKUDOTAYIM"-Fehlermeldung aus

Jemand ne andere Idee?

Gruß

Mastershrimp