get_class
get_class
(PHP 4, PHP 5, PHP 7)
get_class - 返回一个对象的类的名称
描述
string get_class ([ object $object ] )
获取给定类的名称object
。
参数
object
被测试的对象。在类内部时可以省略此参数。
注
:明确地传递NULL
的object
不再允许作为PHP 7.2.0的。该参数仍然是可选的,并且在类中没有参数的情况下调用get_class()
将会起作用,但NULL
现在传递将发出E_WARNING
通知。
返回值
返回其object
实例的类的名称。FALSE
如果object
不是对象,则返回。
如果object
在类内部被省略,则返回该类的名称。
如果object
是存在于名称空间中的类的实例,则返回该类的限定名称空间名称。
错误/异常
如果使用除对象以外的任何其他对象调用get_class()
,E_WARNING
则会引发级别错误。
更新日志
Version | Description |
---|---|
7.2.0 | NULL was removed as the default value for object, and is no longer a valid input. |
5.3.0 | NULL became the default value for object, so passing NULL to object now has the same result as not passing any value. |
例子
Example#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
Example#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"
Example#3 将 get_class()与命名空间类一起使用
<?php
namespace Foo\Bar;
class Baz {
public function __construct()
{
}
}
$baz = new \Foo\Bar\Baz;
var_dump(get_class($baz)
?>
上面的例子将输出:
string(11) "Foo\Bar\Baz"
同样参阅
- get_called_class() - “后期静态绑定”类名称
- get_parent_class() - 检索对象或类的父类名称
- gettype() - 获取变量的类型
- is_subclass_of() - 检查对象是否将此类作为其父项之一或实现它。
← get_class_vars
get_declared_classes →