get_called_class függvény

A get_called_class függvény annak az osztálynak a nevét adja vissza, amelynek kontextusában egy statikus metódust meghívtak. Ez hasznos az öröklődés során, amikor meg kell határozni, hogy pontosan melyik osztályból hívták meg a metódust.

Szintaxis

phpget_called_class();

Példa

Hozzunk létre két osztályt és hívjunk meg egy metódust a gyermek osztályból:

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

  class ChildClass extends ParentClass {}

  echo ChildClass::test();
?>

A kód végrehajtásának eredménye:

php'ChildClass'

Példa

Ellenőrizzük a függvény működését, ha a szülő osztályból hívjuk meg:

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

  class B extends A {}

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

A kód végrehajtásának eredménye:

php'A'
'B'

Példa

A függvény használata a megfelelő osztályú objektumok létrehozásához:

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

A kód végrehajtásának eredménye:

php'Product'

Lásd még

  • a get_class függvényt,
    amely egy objektum osztályát adja vissza
  • a get_parent_class függvényt,
    amely a szülő osztályt adja vissza