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, с которым функция работала аналогично вызову без аргументов. Параметр object стал обязательным и больше не принимает значение null.

Примеры

Пример #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() - Проверяет, принадлежит ли объект к потомкам класса, или реализует ли объект или родители объекта интерфейс