get_called_class függvény
A get_called_class függvény annak az osztálynak a nevét adja vissza, amelynek kontextusában egy statikus metódust meghívtak. Ez hasznos az öröklődés során, amikor meg kell határozni, hogy pontosan melyik osztályból hívták meg a metódust.
Szintaxis
get_called_class();
Példa
Hozzunk létre két osztályt és hívjunk meg egy metódust a gyermek osztályból:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
A kód végrehajtásának eredménye:
'ChildClass'
Példa
Ellenőrizzük a függvény működését, ha a szülő osztályból hívjuk meg:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
A kód végrehajtásának eredménye:
'A'
'B'
Példa
A függvény használata a megfelelő osztályú objektumok létrehozásához:
<?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);
?>
A kód végrehajtásának eredménye:
'Product'
Lásd még
-
a get_class függvényt,
amely egy objektum osztályát adja vissza -
a get_parent_class függvényt,
amely a szülő osztályt adja vissza