Функцыя 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,
    якая вяртае бацькоўскі клас