get_class

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

get_classRetorna o nome da classe de um objeto

Descrição

get_class(object $object = ?): string

Obtém o nome da classe do object informado.

Parâmetros

object

O objeto testado.

Note: Passar explicitamente null no parâmetro object não é mais permitido a partir do PHP 7.2.0 e emite um E_WARNING. A partir do 8.0.0, um TypeError é emitido quando null é usado.

Valor Retornado

Retorna o nome da classe da qual object é uma instância.

Se object for uma instância de uma classe que existe em um espaço de nomes, o nome da classe qualificado com espaço de nomes é retornado.

Erros/Exceções

Se get_class() for chamada com qualquer outro parâmetro que não seja um objeto, TypeError é disparado. Antes do PHP 8.0.0, um alerta E_WARNING era emitido.

Se get_class() for chamada sem parâmetros de fora de uma classe, um Error é disparado. Antes do PHP 8.0.0, um alerta E_WARNING era emitido.

Registro de Alterações

Versão Descrição
8.3.0 Chamar get_class() sem um argumento agora emite um alerta E_DEPRECATED; anteriormente, chamar esta função de dentro de uma classe retornava o nome dessa classe.
8.0.0 Chamar esta função de fora de uma classe, sem argumentos, agora dispara um Error. Anteriormente, um alerta E_WARNING era emitido e a função retornava false.
7.2.0 Antes desta versão o valor padrão para object era null e tinha o mesmo efeito de não se passar nenhum valor. Agora, null foi removido do valor padrão para object, e não é mais uma entrada válida.

Exemplos

Example #1 Usando get_class()

<?php

class foo {
    function name()
    {
        echo "Meu nome é " , get_class($this) , "\n";
    }
}

// cria um objeto
$bar = new foo();

// chamada externa
echo "Seu nome é " , get_class($bar) , "\n";

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

?>

O exemplo acima produzirá:

Meu nome é foo
Seu nome é foo

Example #2 Usando get_class() em superclasse

<?php

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

class foo extends bar {
}

new foo;

?>

O exemplo acima produzirá:

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

Example #3 Usando get_class() em classe com espaço de nomes

<?php

namespace Foo\Bar;

class Baz {
    public function __construct()
    {

    }
}

$baz = new \Foo\Bar\Baz;

var_dump(get_class($baz));
?>

O exemplo acima produzirá:

string(11) "Foo\Bar\Baz"

Veja Também