PHP 类和对象函数

PHP get_class() 函数返回给定对象的类名称。

语法

get_class(object) 

参数

object

可选。 指定测试对象。在类内部时可以省略此参数。

注意:从 PHP 7.2.0 开始,不再允许显式传递 null 作为对象。该参数仍然是可选的,并且可以在类内部不使用参数来调用此函数,但传递 null 现在会发出 E_WARNING 通知。

返回值

返回object是其实例的类的名称。如果 object 不是对象,则返回 false。

如果在类内部省略 object,则返回该类的名称。

如果 object 是存在于命名空间中的类的实例,返回该类的限定命名空间名称。

异常

如果使用对象以外的任何对象调用函数,则会出现 E_WARNING 级错误。

示例:使用 get_class()

下面的示例显示 get_class( ) 函数。

<?php
class myClass {
  function name() {
    echo "Class name (internal call): ".get_class($this)."\n";
  }
}

//创建对象
$myObject = new myClass();

//外部调用
echo "Class name (external call): ".get_class($myObject)."\n";

//内部调用
$myObject->name();
?> 

上述代码的输出将是:

Class name (external call): myClass
Class name (internal call): myClass 

示例:在超类中使用 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" 

示例:使用 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"