PHP获取静态函数中子类的名称

时间:2012-08-11 22:01:48

标签: php class

这样的事情可能吗?

<?
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();
?>

2 个答案:

答案 0 :(得分:2)

从PHP 5.3开始,为此目的有get_called_class()

echo get_called_class(); // yields "B"

答案 1 :(得分:2)

<?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