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 функция выбрасывает исключение TypeError при передаче в параметр значения null.

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

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

Функция вернёт полное название пространства имён, если объект object — экземпляр класса из пространства имён.

Ошибки

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

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

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

Версия Описание
8.3.0 Функция get_class() теперь выдаёт ошибку уровня E_DEPRECATED, если функцию вызвали без аргументов; раньше вызов функции внутри класса возвращал название класса.
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() - Проверяет, принадлежит ли объект к потомкам класса, или реализует ли объект или родители объекта интерфейс