0

如何获取子类的类名而不是父类?两者都打印a,但它应该b在第二个打印var_dump()

 <?php
    class a
    {
        public $name;

        public function __construct()
        {
            $this->name=get_class();
        }
    }

    class b extends a
    {
        public function b()
        {
            parent::__construct();
        }
    }

    $a= new a();
    $b=new b();

    var_dump($a); //prints a
    var_dump($b); //prints a, i want to be printed b here
?>
4

2 回答 2

2

传递$thisget_class()

$this->name = get_class($this);
于 2012-07-26T15:21:41.563 回答
1

在静态方法中,get_class()不会__ CLASS __起作用。

只会get_called_class()工作。

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

于 2012-09-22T17:13:32.260 回答