Frage

Okay, der Post-Titel sein könnte ein wenig verwirrend.

Ich habe diesen Code:

class A {
    public static foo() {
        return get_called_class();
    }
}

class B extends A {

}

class C {
    public function bar() {
        echo B::foo();
    }
}

Ausgabe: C

, was ich will in foo bekommen () ist der Name der Klasse von B. Wie kann ich dies tun, ohne Änderungen in der Klasse B?

Viele Grüße, Jan Oliver

PS:. __ __ CLASS, get_class () funktioniert nicht

War es hilfreich?

Lösung

Vor PHP 5.3, dies ohne Hacks nicht möglich ist, und so spät statische Bindung, ein googleable Begriff bekannt ist.

Wenn Sie daran interessiert sind, hier ist der SO Artikel mit Antworten: Faking später Bindung Static vor pHP 5.3

Andere Tipps

ich glaube, Sie die eingebaute in verwenden könnte Reflection Klasse für das.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top