Funktion get_called_class

Die Funktion get_called_class gibt den Namen der Klasse zurück, im Kontext derer eine statische Methode aufgerufen wurde. Dies ist nützlich bei der Arbeit mit Vererbung, wenn festgestellt werden muss, aus welcher Klasse genau eine Methode aufgerufen wurde.

Syntax

phpget_called_class();

Beispiel

Erstellen wir zwei Klassen und rufen eine Methode aus der abgeleiteten Klasse auf:

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

  class ChildClass extends ParentClass {}

  echo ChildClass::test();
?>

Ergebnis der Codeausführung:

php'ChildClass'

Beispiel

Überprüfen wir die Funktionsweise bei einem Aufruf aus der Elternklasse:

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

  class B extends A {}

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

Ergebnis der Codeausführung:

php'A'
'B'

Beispiel

Verwendung der Funktion zum Erstellen von Objekten der benötigten Klasse:

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

Ergebnis der Codeausführung:

php'Product'

Siehe auch

  • die Funktion get_class,
    die die Klasse eines Objekts zurückgibt
  • die Funktion get_parent_class,
    die die Elternklasse zurückgibt