Funktionen get_called_class
Funktionen get_called_class returnerer navnet på den klasse, i hvis kontekst en statisk metode blev kaldt. Dette er nyttigt ved arv, når det er nødvendigt at bestemme, hvilken specifik klasse metoden blev kaldt fra.
Syntaks
get_called_class();
Eksempel
Lad os oprette to klasser og kalde en metode fra den underordnede klasse:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
Resultat af kodekørsel:
'ChildClass'
Eksempel
Lad os tjekke funktionens virkemåde ved kald fra den overordnede klasse:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
Resultat af kodekørsel:
'A'
'B'
Eksempel
Brug af funktionen til at oprette objekter af den ønskede klasse:
<?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);
?>
Resultat af kodekørsel:
'Product'
Se også
-
funktionen get_class,
som returnerer objektets klasse -
funktionen get_parent_class,
som returnerer den overordnede klasse