get_class

(PHP 4, PHP 5, PHP 7)

get_classВозвращает имя класса, к которому принадлежит объект

Описание

get_class ( object $object = ? ) : string

Возвращает имя класса, экземпляром которого является объект object.

Список параметров

object

Тестируемый объект. Внутри класса этот параметр может быть опущен.

Замечание: Начиная с PHP 7.2.0, явная передача null в object запрещена. Параметр все еще опциональный и вызов get_class() без этого параметра внутри класса будет работать, но явная передача null теперь приведет к ошибке уровня E_WARNING.

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

Возвращает имя класса, к которому принадлежит экземпляр object. Возвращает false, если object не является объектом.

Если параметр object опущен внутри класса, будет возвращено имя этого класса.

Если параметр object является экземпляром класса, существующего в пространстве имен, то будет возвращено полное имя с указанием пространства имен.

Ошибки

Если get_class() будет вызвана с чем-то другим, не являющимся объектом, будет вызвана ошибка уровня E_WARNING.

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

Версия Описание
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() - Возвращает тип переменной
  • is_subclass_of() - Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его