Функцијата 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,
    која го враќа родителскиот клас