Funkcija get_called_class
Funkcija get_called_class grąžina klasės pavadinimą, kurio kontekste buvo iškviestas statinis metodas. Tai naudinga dirbant su paveldėjimu, kai reikia nustatyti, iš kurios tiksliai klasės buvo iškviestas metodas.
Sintaksė
get_called_class();
Pavyzdys
Sukurkime dvi klases ir iškviškime metodą iš vaikinės klasės:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
Kodo vykdymo rezultatas:
'ChildClass'
Pavyzdys
Patikrinkime funkcijos veikimą iškviečiant iš pagrindinės klasės:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
Kodo vykdymo rezultatas:
'A'
'B'
Pavyzdys
Funkcijos naudojimas norimos klasės objektų sukūrimui:
<?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);
?>
Kodo vykdymo rezultatas:
'Product'
Taip pat žiūrėkite
-
funkciją get_class,
kuri grąžina objekto klasę -
funkciją get_parent_class,
kuri grąžina pagrindinę klasę