Hàm get_called_class

Hàm get_called_class trả về tên của lớp trong ngữ cảnh mà phương thức tĩnh được gọi. Điều này hữu ích khi làm việc với tính kế thừa, khi cần xác định phương thức được gọi từ lớp cụ thể nào.

Cú pháp

phpget_called_class();

Ví dụ

Tạo hai lớp và gọi phương thức từ lớp con:

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

  class ChildClass extends ParentClass {}

  echo ChildClass::test();
?>

Kết quả thực thi mã:

php'ChildClass'

Ví dụ

Kiểm tra hoạt động của hàm khi gọi từ lớp cha:

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

  class B extends A {}

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

Kết quả thực thi mã:

php'A'
'B'

Ví dụ

Sử dụng hàm để tạo các đối tượng của lớp cần thiết:

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

Kết quả thực thi mã:

php'Product'

Xem thêm