在 PHP 中可以通过 get_class 方法获取对象的类名。

说明

get_class(object $object = null): string

返回对象实例 object 所属类的名字。

参数

object

要测试的对象,默认值为 null。如果在类里,此参数可以省略。

返回值

返回对象实例 object 所属类的名字。 如果 object 不是一个对象则返回 false。

如果在一个类里,省略了参数 object, 则返回当前所在类的名称。

如果 object 是命名空间中某个类的实例,则会返回带上命名空间的类名。

错误/异常

如果用其他类型调用 get_class(),而不是一个对象的话,就会产生 E_WARNING 级别的错误。

范例

示例 #1 使用 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 超类中使用 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 FooBar;

class Baz {
    public function __construct()
    {

    }
}

$baz = new FooBarBaz;

var_dump(get_class($baz));
?>

以上代码会输出:

string(11) "FooBarBaz"