Función get_called_class

La función get_called_class devuelve el nombre de la clase en cuyo contexto se llamó el método estático. Esto es útil cuando se trabaja con herencia, cuando es necesario determinar desde qué clase exactamente se llamó el método.

Sintaxis

phpget_called_class();

Ejemplo

Creemos dos clases y llamemos al método desde la clase hija:

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

  class ChildClass extends ParentClass {}

  echo ChildClass::test();
?>

Resultado de la ejecución del código:

php'ChildClass'

Ejemplo

Comprobemos el funcionamiento de la función cuando se llama desde la clase padre:

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

  class B extends A {}

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

Resultado de la ejecución del código:

php'A'
'B'

Ejemplo

Uso de la función para crear objetos de la clase necesaria:

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

Resultado de la ejecución del código:

php'Product'

Ver también