get_called_class funksiýasy
get_called_class funksiýasy statik metoduň çagyrylan kontekstindäki klasyň adyny yzyna gaytarýar. Bu miras almak bilen işleýän wagty, metoduň haýsy klasdan çagyrylandygyny kesgitlemek gerek bolýança peýdalydyr.
Sintaksis
get_called_class();
Mysal
Iki klas dörediň we metody şahsy klasdan çakylyň:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
Kody ýerine ýetirmegiň netijesi:
'ChildClass'
Mysal
Kök klasdan çagyrylýan wagty funksiýanyň işini barlalyň:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
Kody ýerine ýetirmegiň netijesi:
'A'
'B'
Mysal
Gerekli klasyň obýektlerini döretmek üçin funksiýany ulanyş:
<?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);
?>
Kody ýerine ýetirmegiň netijesi:
'Product'
Şeýle-de serediň
-
get_class funksiýasy,
obyektiň klasyny yzyna gaytarýar -
get_parent_class funksiýasy,
kök klasy yzyna gaytarýar