函式名稱: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) 來獲取當前類名。