(PHP 4, PHP 5, PHP 7, PHP 8)
get_class — Returns the name of the class of an object
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.
Version | Description |
---|---|
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.
|
Example #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();
?>
The above example will output:
Its name is foo My name is foo
Example #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;
?>
The above example will output:
string(3) "foo" string(3) "bar"
Example #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));
?>
The above example will output:
string(11) "Foo\Bar\Baz"