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