Mit diesem statischen 'Vererbung' in php 5.3 habe ich ein kleines Problem. Ich muss testen, ob eine statische Funktion in einer statischen Klasse existiert, jedoch muss ich das von innerhalb einer Eltern-Static-Klasse aus testen.
Ich weiß, dass ich in php 5.3 das Schlüsselwort 'static' verwenden kann, um das Schlüsselwort 'this' zu simulieren. Ich finde einfach keinen Weg, um zu testen, ob die Funktion existiert.
Hier ist ein Beispiel:
// Elternklasse
class A{
// Klasse B wird sie erweitern und kann möglicherweise
// statische Funktion namens 'func' haben
// Ich muss das testen
public static function parse(array $a){
if(function_exists(array(static, 'func'){
static::func($a);
}
}
}
class B extends A {
public static function func( array $a ){
// macht etwas
}
}
Jetzt muss ich B::parse();
ausführen. Die Idee ist, dass wenn die Unterklasse eine Funktion hat, diese verwendet wird, ansonsten nicht.
Ich habe versucht:
function_exists(static::func){}
isset(static::func){}
Diese 2 funktionieren nicht.
Irgendwelche Ideen, wie man das machen kann? Übrigens, ich kenne die Möglichkeit, eine Lambda-Funktion als Workaround zu übergeben, dies ist jedoch in meiner Situation keine Option.
Ich habe das Gefühl, dass es eine sehr einfache Lösung gibt, an die ich gerade nicht denken kann.
Jetzt muss ich