(PHP 4, PHP 5, PHP 7, PHP 8)
get_class — Возвращает имя класса, которому принадлежит объект
Функция возвращает имя класса, которому принадлежит экземпляр 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"