Funkcija get_called_class
Funkcija get_called_class vrne ime razreda, v kontekstu katerega je bila klicana statična metoda. To je uporabno pri delu z dedovanjem, ko je treba določiti, iz katerega razreda je bila metoda klicana.
Sintaksa
get_called_class();
Primer
Ustvarimo dva razreda in pokličimo metodo iz podrejenega razreda:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
Rezultat izvajanja kode:
'ChildClass'
Primer
Preverimo delovanje funkcije pri klicu iz nadrejenega razreda:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
Rezultat izvajanja kode:
'A'
'B'
Primer
Uporaba funkcije za ustvarjanje objektov želenega razreda:
<?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);
?>
Rezultat izvajanja kode:
'Product'
Glejte tudi
-
funkcijo get_class,
ki vrne razred objekta -
funkcijo get_parent_class,
ki vrne nadrejeni razred