1

我尝试打印创建新对象的类的名称。我得到了这个代码:

class Class_A
{
  public function __construct()
  {
    echo "new ".__class__." : are created"."<br />";
  }
}
class B extends Class_A
{

}
class C extends Class_A
{

}
$NewObject1= new B ( );
$NewObject2= new C ( );

输出是:

new Class_A : are created
new Class_A : are created

为什么不new B : are created new C : are created呢?

我也尝试过,getParentClass()但它不起作用谢谢!

4

3 回答 3

3

在这种情况下,你应该写

echo "new ".get_called_class()." : are created"."<br />";

你可以看看http://www.php.net/manual/en/function.get-call-class.php

于 2012-05-07T11:37:10.423 回答
3

对于 PHP >= 5.3.0,使用

get_called_class()

否则,使用

get_class($this)

在你的问题的背景下。

于 2012-05-07T11:39:29.150 回答
1

__class__放置在代码中的点

get_class($this)改为使用

于 2012-05-07T11:37:58.207 回答