Функсияи get_called_class
Функсияи get_called_class номи синферо бармегардонад, ки дар контексти он методои статикӣ даъват шудааст. Ин дар кор бо мерос дар ҳолате ки муайян кардани он ки дақиқан аз кадом синф метод даъват шудааст, муфид аст.
Синтаксис
get_called_class();
Мисол
Ду синф эҷод карда ва методро аз синфи фарзандӣ даъват мекунем:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
Натиҷаи иҷрои рамз:
'ChildClass'
Мисол
Коркарди функсияро ҳангоми даъват аз синфи волидайн санҷем:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
Натиҷаи иҷрои рамз:
'A'
'B'
Мисол
Истифодаи функсия барои эҷоди объектҳои синфи дархостшуда:
<?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);
?>
Натиҷаи иҷрои рамз:
'Product'
Ҳамчунин бубинед
-
функсияи get_class,
ки синфи объектро бармегардонад -
функсияи get_parent_class,
ки синфи волидайнро бармегардонад