Funkcja get_called_class
Funkcja get_called_class zwraca nazwę klasy, w kontekście której została wywołana metoda statyczna. Jest to przydatne przy pracy z dziedziczeniem, gdy trzeba określić, z której dokładnie klasy została wywołana metoda.
Składnia
get_called_class();
Przykład
Stwórzmy dwie klasy i wywołajmy metodę z klasy potomnej:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
Wynik wykonania kodu:
'ChildClass'
Przykład
Sprawdźmy działanie funkcji przy wywołaniu z klasy nadrzędnej:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
Wynik wykonania kodu:
'A'
'B'
Przykład
Użycie funkcji do tworzenia obiektów potrzebnej klasy:
<?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);
?>
Wynik wykonania kodu:
'Product'
Zobacz też
-
funkcję get_class,
która zwraca klasę obiektu -
funkcję get_parent_class,
która zwraca klasę nadrzędną