ฟังก์ชัน get_called_class

ฟังก์ชัน get_called_class ส่งกลับชื่อคลาสในบริบทที่เมธอดแบบสแตติกถูกเรียก สิ่งนี้มีประโยชน์เมื่อทำงานกับการสืบทอด เมื่อจำเป็นต้องกำหนดว่าเมธอดถูกเรียกจากคลาสใด

ไวยากรณ์

phpget_called_class();

ตัวอย่าง

มาสร้างคลาสสองคลาสและเรียกเมธอดจากคลาสลูก:

php<?php
  class ParentClass {
    public static function test() {
      return get_called_class();
    }
  }

  class ChildClass extends ParentClass {}

  echo ChildClass::test();
?>

ผลลัพธ์ของการรันโค้ด:

php'ChildClass'

ตัวอย่าง

มาตรวจสอบการทำงานของฟังก์ชันเมื่อเรียกจากคลาสแม่:

php<?php
  class A {
    public static function who() {
      return get_called_class();
    }
  }

  class B extends A {}

  echo A::who();
  echo "\n";
  echo B::who();
?>

ผลลัพธ์ของการรันโค้ด:

php'A'
'B'

ตัวอย่าง

การใช้ฟังก์ชันเพื่อสร้างอ็อบเจ็กต์ของคลาสที่ต้องการ:

php<?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);
?>

ผลลัพธ์ของการรันโค้ด:

php'Product'

ดูเพิ่มเติม

  • ฟังก์ชัน get_class,
    ซึ่งส่งกลับคลาสของอ็อบเจ็กต์
  • ฟังก์ชัน get_parent_class,
    ซึ่งส่งกลับคลาสแม่