Php 强制父方法处理子类值

Php 强制父方法处理子类值,php,oop,inheritance,prototypal-inheritance,Php,Oop,Inheritance,Prototypal Inheritance,假设以下代码: 示例_1 class Parent_Class {} class Child_Class extends Parent_Class { public $class_name; public function __construct() { $this->class_name = get_class(); } } $child_instance = new Child_Class(); echo $child_instance->

假设以下代码:

示例_1

class Parent_Class {}

class Child_Class extends Parent_Class {
    public $class_name;

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

$child_instance = new Child_Class();
echo $child_instance->class_name;

/// output will be : 
/// Child_Class
然而,在这里:

示例2

class Parent_Class {
    public $class_name;

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

class Child_Class extends Parent_Class {
    public $class_name;

}

$child_instance = new Child_Class();
echo $child_instance->class_name;

/// output will be:
/// Parent_Class
问题: 如何实现示例2中示例1的输出,即:
如何强制父构造函数方法始终查找子类名

您可以使用
get\u called\u class()
而不是
get\u class()

有关更多信息:

class Parent_Class
{
    public function __construct()
    {
        $this->class_name = get_called_class();
    }
}