函数名称:get_called_class()
适用版本:PHP 5 >= 5.3.0, PHP 7
函数描述:get_called_class() 函数返回调用该方法的类名。
用法: get_called_class() 函数在静态方法中返回该静态方法被调用时的类名,而在非静态方法中返回该非静态方法所属的对象的类名。如果该方法被调用时没有对象,则返回空字符串。
示例:
- 在静态方法中使用get_called_class():
class MyClass {
public static function getClassName() {
return get_called_class();
}
}
class MyChildClass extends MyClass {}
echo MyChildClass::getClassName(); // 输出:MyChildClass
- 在非静态方法中使用get_called_class():
class MyClass {
public function getClassName() {
return get_called_class();
}
}
class MyChildClass extends MyClass {}
$obj = new MyChildClass();
echo $obj->getClassName(); // 输出:MyChildClass
注意事项:
- get_called_class() 函数只能在类的方法中使用,不能在类的外部使用。
- 如果该方法是在一个命名空间中被调用,将返回完全限定的类名。
- 如果该方法是在一个 trait 方法中被调用,将返回 trait 的名称。
- 如果该方法是在一个匿名类中被调用,将返回一个包含类的文件名和行号的字符串。
- 在 PHP 5.3.0 之前的版本中,使用 get_class($this) 来获取当前类名。