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