get_class

(PHP 4, PHP 5, PHP 7, PHP 8)

get_classReturns the name of the class of an object

Опис

get_class(object $object = ?): string

Gets the name of the class of the given object.

Параметри

object

The tested object.

Зауваження: Explicitly passing null as the object is no longer allowed as of PHP 7.2.0 and emits an E_WARNING. As of PHP 8.0.0, a TypeError is emitted when null is used.

Значення, що повертаються

Returns the name of the class of which object is an instance.

If the object is an instance of a class which exists in a namespace, the qualified namespaced name of that class is returned.

Помилки/виключення

If get_class() is called with anything other than an object, TypeError is raised. Prior to PHP 8.0.0, an E_WARNING level error was raised.

If get_class() is called with no arguments from outside a class, an Error is thrown. Prior to PHP 8.0.0, an E_WARNING level error was raised.

Журнал змін

Версія Опис
8.3.0 Calling get_class() without an argument now emits an E_DEPRECATED warning; previously, calling this function inside a class returned the name of that class.
8.0.0 Calling this function from outside a class, without any arguments, will now throw an Error. Previously, an E_WARNING was raised and the function returned false.
7.2.0 Prior to this version the default value for object was null and it had the same effect as not passing any value. Now null has been removed as the default value for object, and is no longer a valid input.

Приклади

Приклад #1 Using get_class()

<?php

class foo {
function
name()
{
echo
"My name is " , get_class($this) , "\n";
}
}

// create an object
$bar = new foo();

// external call
echo "Its name is " , get_class($bar) , "\n";

// internal call
$bar->name();

?>

Поданий вище приклад виведе:

Its name is foo
My name is foo

Приклад #2 Using get_class() in superclass

<?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 Using get_class() with namespaced classes

<?php

namespace Foo\Bar;

class
Baz {
public function
__construct()
{

}
}

$baz = new \Foo\Bar\Baz;

var_dump(get_class($baz));
?>

Поданий вище приклад виведе:

string(11) "Foo\Bar\Baz"

Прогляньте також