Funksjonen get_called_class
Funksjonen get_called_class returnerer navnet på klassen i hvilken kontekst den statiske metoden ble kalt. Dette er nyttig når du arbeider med arv, når du må finne ut nøyaktig hvilken klasse metoden ble kalt fra.
Syntaks
get_called_class();
Eksempel
La oss opprette to klasser og kalle en metode fra barneklassen:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
Resultat av kjøring av koden:
'ChildClass'
Eksempel
La oss sjekke funksjonen ved kall fra foreldreklassen:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
Resultat av kjøring av koden:
'A'
'B'
Eksempel
Bruke funksjonen for å opprette objekter av ønsket 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 av kjøring av koden:
'Product'
Se også
-
funksjonen get_class,
som returnerer objektets klasse -
funksjonen get_parent_class,
som returnerer foreldreklassen