這裏是我的情況:
我有一個類被其他十幾個人繼承,在這個類中我有一個複製方法,它返回它自己的副本。
我可以在繼承類中使用此方法,但顯然,該方法始終返回超類的實例,而不是從其繼承的實例。
我想我的複製方法返回ihneriting類的實例。
PHP - 可繼承的複製方法
BaseEntity.php:
class BaseEntity
{
protected $id;
protected $name;
protected $active;
protected $deleted;
// ...
public function copy()
{
$copy = new BaseEntity();
$copy->id = $this->id;
$copy->name = $this->name;
$copy->active = $this->active;
$copy->deleted = $this->deleted;
return $copy;
}
}
user.php的:
class User extends BaseEntity
{
// ...
// Properties are the same as BaseEntity, there is just more methods.
}
爲什麼不你使用'clone'? – PeeHaa
然後你需要在'User'類中繼承copy()方法並在那裏添加你的邏輯。 –
'$ copy = new get_class($ this)'試試這個而不是'$ copy = new BaseEntity();' – ineersa