我可以从父项 class 中创建子项 class 吗?

Can I create a child class out of a parent class?

假设我有一个 class 负责编写另一个 class:

class ClassBuilder
{
    protected $baseClass;

    public function __construct()
    {
        $this->baseClass = new BaseClass();
    }

    public function set()
    {
        $this->baseClass->foo = 'bar';
    }

    // other methods to further modify BaseClass
}

class BaseClass
{
    public $foo;
}
class ChildClass extends BaseClass {}

我想在 ClassBuilder 中创建一个方法,允许我将其 baseClass 属性 更新为具有相同 [=23] 的 ChildClass 实例=] 值作为当前的 BaseClass 对象。我该怎么做?

public function update()
{
    // $this->baseClass = new ChildClass() with the current property values in BaseClass
}

我不确定你的整体方法是否正确,但唯一的方法是循环并设置:

public function update()
{
    $new = new ChildClass();

    foreach($this->baseClass as $name => $value) {
        $new->$name = $value;
    }   
    $this->baseClass =  $new;
    //or
    $this->baseClass = clone $new;
}