ฟังก์ชัน 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,
ซึ่งส่งกลับคลาสแม่