PHP中静态函数获取子类的名称[复制](PHP Get name of child class in

2019-07-30 22:38发布

这个问题已经在这里有一个答案:

  • 获得一个子类的名称在父类(静态上下文) 9个回答
  • 我怎样才能从静态调用在扩展PHP类的类名? 6个回答

是这样的可能吗?

<?
class A
{
   public static function fun()
   {
      var_dump(get_class(child)); //bool(false) //should return B
   }
}
class B extends A
{
   public static function fun()
   {
      parent::fun();
   }
}

B::fun();
?>

Answer 1:

<?php
class B extends A
{
   public static function fun()
   {
      parent::fun();
   }
}
class A
{
   public static function fun()
   {
      var_dump(get_called_class());
   }
}

B::fun();

http://php.net/manual/en/function.get-called-class.php



Answer 2:

随着PHP 5.3的,有get_called_class()用于此目的:

echo get_called_class(); // yields "B"


文章来源: PHP Get name of child class in static function [duplicate]
标签: php class