Funktion get_called_class
Die Funktion get_called_class gibt den Namen der Klasse zurück, im Kontext derer eine statische Methode aufgerufen wurde. Dies ist nützlich bei der Arbeit mit Vererbung, wenn festgestellt werden muss, aus welcher Klasse genau eine Methode aufgerufen wurde.
Syntax
get_called_class();
Beispiel
Erstellen wir zwei Klassen und rufen eine Methode aus der abgeleiteten Klasse auf:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
Ergebnis der Codeausführung:
'ChildClass'
Beispiel
Überprüfen wir die Funktionsweise bei einem Aufruf aus der Elternklasse:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
Ergebnis der Codeausführung:
'A'
'B'
Beispiel
Verwendung der Funktion zum Erstellen von Objekten der benötigten Klasse:
<?php
class Factory {
public static function create() {
$class = get_called_class();
return new $class;
}
}
class Product extends Factory {}
$obj = Product::create();
echo get_class($obj);
?>
Ergebnis der Codeausführung:
'Product'
Siehe auch
-
die Funktion get_class,
die die Klasse eines Objekts zurückgibt -
die Funktion get_parent_class,
die die Elternklasse zurückgibt