get_class

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

get_classВозвращает имя класса, к которому принадлежит объект

Описание

get_class(object $object = ?): string

Возвращает имя класса, экземпляром которого является объект object.

Список параметров

object

Тестируемый объект. Внутри класса этот параметр может быть опущен.

Замечание: Начиная с PHP 7.2.0, явная передача null в object запрещена и выдаёт ошибку уровня E_WARNING. Начиная с PHP 8.0.0, при передаче null, выбрасывается исключение TypeError.

Возвращаемые значения

Возвращает имя класса, к которому принадлежит экземпляр object.

Если параметр object опущен внутри класса, будет возвращено имя этого класса.

Если параметр object является экземпляром класса, существующего в пространстве имён, то будет возвращено полное имя с указанием пространства имён.

Ошибки

Если функция get_class() вызывается с чем-либо, кроме объекта, выбрасывается исключение TypeError. До PHP 8.0.0 выдавалась ошибка уровня E_WARNING.

Если функция get_class() вызывается без аргументов вне класса, выбрасывается исключение Error. До PHP 8.0.0 выдавалась ошибка уровня E_WARNING.

Список изменений

Версия Описание
8.0.0 Вызов функции вне класса без каких-либо аргументов вызовет исключение Error. Ранее выдавалась ошибка уровня E_WARNING и функция возвращала значение false.
7.2.0 До этой версии значением по умолчанию для object было null с тем же эффектом, что и отсутствие передачи значения. Теперь null был удалён как значение по умолчанию для object и больше не является допустимым значением.

Примеры

Пример #1 Использование get_class()

<?php

class foo {
function
name()
{
echo
"Меня зовут " , get_class($this) , "\n";
}
}

// создание объекта
$bar = new foo();

// внешний вызов
echo "Его имя " , get_class($bar) , "\n";

// внутренний вызов
$bar->name();

?>

Результат выполнения данного примера:

Его имя foo
Меня зовут foo

Пример #2 Использование get_class() в родительском классе

<?php

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

class
foo extends bar {
}

new
foo;

?>

Результат выполнения данного примера:

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

Пример #3 Использование get_class() с классами в пространствах имён

<?php

namespace Foo\Bar;

class
Baz {
public function
__construct()
{

}
}

$baz = new \Foo\Bar\Baz;

var_dump(get_class($baz));
?>

Результат выполнения данного примера:

string(11) "Foo\Bar\Baz"

Смотрите также

  • get_called_class() - Имя класса, полученное с помощью позднего статического связывания
  • get_parent_class() - Возвращает имя родительского класса для объекта или класса
  • gettype() - Возвращает тип переменной
  • get_debug_type() - Возвращает имя типа переменной в виде, подходящем для отладки
  • is_subclass_of() - Проверяет, содержит ли объект в своём дереве предков указанный класс либо прямо реализует его