get_class

(PHP 4, PHP 5, PHP 7, PHP 8)

get_classDevuelve el nombre de la clase de un objeto

Descripción

get_class(object $object = ?): string

Devuelve el nombre de la clase del objeto obj.

Parámetros

object

El objeto probado.

Nota: Pasar explícitamente null en object ya no es permitido desde PHP 7.2.0 y emite una E_WARNING. A partir de PHP 8.0.0, se emite una TypeError cuando null es utilizado.

Valores devueltos

Devuelve el nombre de la clase de la cual object es una instancia.

Si object es una instancia de una clase que existe en un espacio de nombres, el nombre con el espacio de nombres de la clase será devuelto.

Errores/Excepciones

Si get_class() es llamada con algo que no sea un objeto, se levanta una TypeError. Anteriormente a PHP 8.0.0, se emitía una advertencia de nivel E_WARNING.

Si get_class() es llamado sin argumento fuera de una clase, se levanta una Error. Anteriormente a PHP 8.0.0, se emitía una advertencia de nivel E_WARNING.

Historial de cambios

Versión Descripción
8.3.0 Llamar a get_class() sin argumento ahora desencadena una advertencia E_DEPRECATED; previamente, llamar a esta función dentro de una clase devolvía el nombre de esa clase.
8.0.0 Llamar a esta función desde fuera de una clase ahora lanza una Error. Anteriormente, se generaba un E_WARNING y la función devolvía false.
7.2.0 Anteriormente a esta versión, el valor por omisión para object era null y tenía el mismo efecto que no pasar ningún valor. Ahora null ya no es el valor por omisión para object, y ya no es una entrada válida.

Ejemplos

Ejemplo #1 Ejemplo con get_class()

<?php

class foo {
function
name()
{
echo
"Mi nombre es " , get_class($this) , "\n";
}
}

// creación de un objeto
$bar = new foo();

// Llamada externa
echo "Su nombre es " , get_class($bar) , "\n";

// Llamada interna
$bar->name();

?>

El resultado del ejemplo sería:

Su nombre es foo
Mi nombre es foo

Ejemplo #2 Uso de get_class() en una superclase

<?php

abstract class bar {
public function
__construct()
{
var_dump(get_class($this));
var_dump(get_class());
}
}

class
foo extends bar {
}

new
foo;

?>

El resultado del ejemplo sería:

string(3) "foo"
string(3) "bar"

Ejemplo #3 Uso de get_class() con espacios de nombres de clase

<?php

namespace Foo\Bar;

class
Baz {
public function
__construct()
{

}
}

$baz = new \Foo\Bar\Baz;

var_dump(get_class($baz));
?>

El resultado del ejemplo sería:

string(11) "Foo\Bar\Baz"

Ver también