Functie get_called_class

De functie get_called_class geeft de naam terug van de klasse in wiens context een statische methode werd aangeroepen. Dit is handig bij het werken met overerving, wanneer het nodig is om te bepalen uit welke klasse precies een methode werd aangeroepen.

Syntaxis

phpget_called_class();

Voorbeeld

Laten we twee klassen maken en een methode aanroepen vanuit de childklasse:

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

  class ChildClass extends ParentClass {}

  echo ChildClass::test();
?>

Uitvoerresultaat van de code:

php'ChildClass'

Voorbeeld

Laten we de werking van de functie controleren bij aanroep vanuit de parentklasse:

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

  class B extends A {}

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

Uitvoerresultaat van de code:

php'A'
'B'

Voorbeeld

De functie gebruiken om objecten van de gewenste klasse te maken:

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

Uitvoerresultaat van de code:

php'Product'

Zie ook