php8.5
Home/ Manual/ classobj / functions/ get_class

get_class

PHP function Edit on GitHub ✎

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

Returns the name of the class of an object

Description

get_class([object $object]): string

Gets the name of the class of the given object.

Parameters

object

The tested object.

Note

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.

Return Values

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.

Errors/Exceptions

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.

Changelog

VersionDescription
8.3.0Calling 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.0Calling 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.0Prior 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.

Examples

Using get_class()

php
<?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:

output
Its name is foo
My name is foo

Using get_class() in superclass

php
<?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:

output
string(3) "foo"
string(3) "bar"

Using get_class() with namespaced classes

php
<?php

namespace Foo\Bar;

class Baz {
    public function __construct()
    {

    }
}

$baz = new \Foo\Bar\Baz;

var_dump(get_class($baz));
?>

The above example will output:

output
string(11) "Foo\Bar\Baz"

See Also

Source: reference/classobj/functions/get-class.xml · from the official PHP manual (php/doc-en)