Erklaer mal dein Problem in Ruhe von Anfang an, ohne komischen WTF-Code. Ich hab absolut nicht verstanden was du ueberhaupt willst.
Kurzer Code zur Erklaerung:
PHP-Quellcode:
class A
{
public function foo()
{
echo __CLASS__;
}
}
class B extends A
{
}
$b = new B();
Kurz zur Erklaerung: __CLASS__ ist eine magische Konstante, die immer den Namen der aktuellen Klasse beinhaltet (oder nicht definiert ist wenn du nicht im Klassen-Kontext bist).
$b->foo();
Dieser Code gibt "A" aus.
get_class() ist eine Methode, der du ein Objekt, keinen String (auch nicht sowas: get_class(meineKlasse), denn das ist auch nur ein String mit Compiler-Warnung) uebergibst und die dir den Klassennamen zurueckliefert.
get_class($b)
Dieser Code gibt "B" aus.
instanceof prueft ob ein Objekt ein Child einer Klasse ist.
PHP-Quellcode:
var_dump($b instanceof B);
var_dump($b instanceof A);
In diesem Fall wird zweimal true ausgegeben, denn durch die Vererbung ist $b auch eine Instanz von A.
Klar soweit?
Greetz
alcaeus
PS: __CLASS__ ist kein Schrott. Es sieht auch nicht scheisse aus wenn an einer Stelle die Klasse benutzt wird und an anderer der String. Hin und wieder brauchts das eben so. Schrott oder Scheisse ist es nur, wenn du es nicht schaffst Konzepte auseinanderzuhalten.