在 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"