Functie get_called_class
De functie get_called_class geeft de naam terug van de klasse in wiens context een statische methode werd aangeroepen. Dit is handig bij het werken met overerving, wanneer het nodig is om te bepalen uit welke klasse precies een methode werd aangeroepen.
Syntaxis
get_called_class();
Voorbeeld
Laten we twee klassen maken en een methode aanroepen vanuit de childklasse:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
Uitvoerresultaat van de code:
'ChildClass'
Voorbeeld
Laten we de werking van de functie controleren bij aanroep vanuit de parentklasse:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
Uitvoerresultaat van de code:
'A'
'B'
Voorbeeld
De functie gebruiken om objecten van de gewenste klasse te maken:
<?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);
?>
Uitvoerresultaat van de code:
'Product'
Zie ook
-
de functie get_class,
die de klasse van het object teruggeeft -
de functie get_parent_class,
die de parentklasse teruggeeft