get_class — 返回对象的类名

2018-04-18 21:42:58
linefo
467
最后编辑:linefo 于 2018-04-18 21:44:22

get_class

(PHP 4, PHP 5, PHP 7)

get_class返回对象的类名

说明

string get_class ([ object $obj ] )

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

Note: 在 PHP 扩展库中定义的类返回其原始定义的名字。在 PHP 4 中 get_class() 返回用户定义的类名的小写形式,但是在 PHP 5 中将返回类名定义时的名字,如同扩展库中的类名一样。

Note:

自 PHP 5 起,如果在对象的方法中调用则 obj 为可选项。

Example #1 使用 get_class()

<?php

class foo {
    function 
foo()
    {
    
// implements some logic
    
}

    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

参见 get_parent_class()gettype()is_subclass_of()

参数

object

The tested object. This parameter may be omitted when inside a class.

返回值

Returns the name of the class of which object is an instance. Returns FALSE if object is not an object.

If object is omitted when inside a class, the name of that class is returned.

错误/异常

If get_class() is called with anything other than an object, an E_WARNING level error is raised.

更新日志

版本 说明
Since 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.
Since 5.0.0 The class name is returned in its original notation.
Since 5.0.0 The object parameter is optional if called from the object's method.

范例

Example #2 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();

?>

以上例程会输出:

Its name is foo
My name is foo

Example #3 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;

?>

以上例程会输出:

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

参见