get_class

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

get_class返回對(duì)象的類名

說(shuō)明

get_class(object $object = null): string

返回對(duì)象實(shí)例 object 所屬類的名字。

參數(shù)

object

要測(cè)試的對(duì)象。如果在類里,此參數(shù)可以省略。

返回值

返回對(duì)象實(shí)例 object 所屬類的名字。 如果 object 不是一個(gè)對(duì)象則返回 false

如果在一個(gè)類里,省略了參數(shù) object, 則返回當(dāng)前所在類的名稱。

如果 object 是命名空間中某個(gè)類的實(shí)例,則會(huì)返回帶上命名空間的類名。

錯(cuò)誤/異常

如果用其他類型調(diào)用 get_class(),而不是一個(gè)對(duì)象的話,就會(huì)產(chǎn)生 E_WARNING 級(jí)別的錯(cuò)誤。

更新日志

版本 說(shuō)明
5.3.0 起 object 默認(rèn)參數(shù)現(xiàn)在是 null ,所以,現(xiàn)在傳入 nullobject 參數(shù)時(shí),和沒(méi)傳參數(shù)的結(jié)果一樣。

范例

示例 #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();

?>

以上例程會(huì)輸出:

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;

?>

以上例程會(huì)輸出:

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

示例 #3 命名空間中的類使用 get_class()

<?php

namespace Foo\Bar;

class 
Baz {
    public function 
__construct()
    {

    }
}

$baz = new \Foo\Bar\Baz;

var_dump(get_class($baz));
?>

以上例程會(huì)輸出:

string(11) "Foo\Bar\Baz"

參見(jiàn)